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

标签 ios swift calayer cliptobounds

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

关闭 5 年前

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

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

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

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

如果仍然不清楚,请在评论中告诉我。

最佳答案

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

因此,在您的情况下,如果您不想让一个 View 越界,而另一个 View 不越界,您将需要额外的(透明) View ,该 View 与 superview 具有相同的矩形,但会剪裁 subview 。

然后将您的剪辑 subview 添加为这个新透明层的 subview ,另一个应该是父 View 的直接 subview 。

希望这有帮助:)

关于ios - 防止 UIView 在 Swift 中溢出到 SuperView 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855120/

上一篇:ios - 'downloadURL( )' is deprecated: Use ` StorageReference.downloadURLWithCompletion()` 获取当前下载 URL。

下一篇:ios - iPhone 模拟器在 Xcode 中不可见

相关文章:

swift - 如何编写一个快速函数来计算没有条目的天数?

iOS:CALayer 的辅助功能标签

ios - CALayer autoresizingMask 不适用于 iOS SDK?

iphone - 移动 CALayer(添加动画)

ios - 我如何在 iOS 中为 ECSlidingViewController 构建 3D 转换?

ios - 如何修复我的自定义标记的大小和颜色

ios - 以编程方式在 UIScrollView 中居中 subview

ios - 获取异常 : "Impossible to set up layout with view hierarchy unprepared for constraint"

ios - 当我们在 IOS 10.2 中滑过它时,UISwitch 不工作

ios - 使用私有(private) api 在 iOS 中检测启用的热点