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

时间:2018-12-18 02:41:09

标签: ios view

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

layer.masksToBounds = false
layer.cornerRadius = 10

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

2 个答案:

答案 0 :(得分:0)

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

subView.masksToBounds = true

答案 1 :(得分:0)

也尝试将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
    }
}