UIView clipsToBounds不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIView clipsToBounds不起作用相关的知识,希望对你有一定的参考价值。

我有一个带XIB的视图控制器,里面有一个视图(contentView)。该视图包含一些按钮。

内容视图具有圆角和剪辑到边界,但它不尊重剪切矩形。我在视图控制器的clipsToBounds中设置了角半径和viewDidLoad

在这里,您可以看到显示视图以正确方式组合的显示屏幕截图,但在模拟器和设备上,剪裁边界不受尊重。

有人可以帮我理解发生了什么。

该应用程序针对ios 10和11,两者都有相同的问题。

enter image description here

enter image description here

enter image description here

答案

我找到了一个解决方案,我在viewDidLayoutSubviews中移动clipsToBound而不是viewDidLoad,现在可以工作了

override func viewDidLoad() {
    super.viewDidLoad()

    contentView.layer.cornerRadius = Dimensions.CornerRaius
    contentView.dropShadow()
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    contentView.clipsToBounds = true
}

以上是关于UIView clipsToBounds不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UIView属性clipsTobounds的应用

NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)

将 UIView.layer.clipsToBounds = true 与 CABasicAnimation 结合使用时,并非所有像素都被裁剪

UIlabel layer.cornerRadius在iOS 7.1中不起作用

clipsToBounds 是如何工作的?

UIView 动画不起作用