在 Swift 中防止 UIView 溢出到 SuperView 之外

Prevent a UIView from Overflow outside SuperView in Swift

假设有一个 UIView(0,0,100,100),它有两个子视图,一个是 (-5,-5,10,10),第二个是 (0,95,10,10)。我想让第一个 SubView 从 superView 而不是 secondOne 溢出。 UIView 中是否有任何 属性 可以设置以防止 UIView 溢出它的 SuperView?或者实现此目标的最佳方法是什么?

注意: 这里坐标的形式是 (x,y,Width,Height)

更新: 由于有些人将这个问题标记为不清楚,让我添加一些要点:

  1. 我熟悉 clipToBounds 属性 的 UIView,但这会让它的所有子视图都被裁剪,但我的问题是反之亦然。
  2. 我只是想知道 UIView 中是否有任何 属性 可以防止 UIView 从它的 superView 溢出。
  3. 为了说明同样的问题,我只是举了一个例子,其中将 clipToBounds 设置为 superView 不会达到我们的目的,因为一个子视图需要从它的父视图溢出。

如有不明之处,请在评论中告诉我。

有一个名为 clipsToBounds 的 属性,但反之亦然 - 它告诉 UIView 它的所有子视图都被裁剪为不在其自身边界之外绘制。

因此,在您的情况下,如果您不想让一个视图超出范围,而另一个视图没有超出范围,您将需要额外的(透明)视图,该视图与超级视图具有相同的矩形,但会剪裁子视图.

然后将你的剪裁子视图添加为这个新透明层的子视图,另一个应该是父视图的直接子视图。

希望这对您有所帮助:)

您可以将 UIView 的 clipToBounds 属性 设置为 true。当您将 clipToBounds 设置为 yes 时,其子视图将不会溢出。