Swift 3:嵌套的UIView角不会被圆角处理

12

我有一个名为parentUIView。在parent中嵌套了两个名为Child1Child2的UIView。(参见图片) Parent-Child Relation

注意:Child1、Child2和Parent之间没有边距,即边距为0。

我正在尝试将Parent的角落变圆

parentView.layer.cornerRadius = 10

这不会使子元素的角落变圆。(见图片)

上方角不会被圆角化

这里,上方角没有 被圆角化。因为Child2是透明的,而Child1带颜色,Parent为白色。

我尝试了以下方法:

parentView.layer.cornerRadius = 10
child1.clipsToBounds = true
没有运气。
parentView.layer.cornerRadius = 10
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 10, height: 10)).cgPath
child1.layer.mask = maskLayer

仍然没有运气

请帮帮我


将 ".clipsToBounds" 属性设置为 true。这样可以隐藏图层的溢出部分。 - Simon Degn
子视图和父视图都设置了cornerRadius和clipsToBounds = true。 - Raksha Saini
3
将父层的 masksToBounds 属性设置为 true。 - badhanganesh
2个回答

29

我认为你需要在parentView上添加clipToBound

parentView.clipsToBounds = true

2
非常成功! - Aryan Sharma
这也可以在界面构建器 - 属性检查器 - 绘图中设置。 - Pavlo28
是的,你说得对。 - Vivek

2
如果您需要cornerRadius。
import QuartzCore

parentView.layer.cornerRadius = yourvalue

如果您不想阴影,则添加:


parentView.layer.masksToBounds = true 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接