繁体   English   中英

如何使子视图在iOS中成为超级视图?

[英]How to make sub view to be round corner as super view in iOS?

我使用以下方法将视图(浅灰色)设置为圆角:

layer.masksToBounds = false
layer.cornerRadius = 10

工作正常。 但是,当添加子视图(深灰色)时,该子视图并不像其超级视图那样是圆形的。 圆角视图 如何使子视图成为超级视图?

在添加子视图时,请将masksToBounds设置为true

subView.masksToBounds = true

尝试也将cornerRadius添加到子视图。

subview.layer.masksToBounds = false
subview.layer.cornerRadius = 10

更新

通过使用UIBezierPath我们可以将圆度添加到所需的任何角。

subview.roundCorners([.topLeft, .topRight, .bottomRight], radius: 6)

延期

extension UIView {
    func roundCorners(_ corners: UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM