【发布时间】:2021-04-07 09:48:54
【问题描述】:
我希望UIView 或CALayer 的每个角都有不同的半径,但是,不要明确 引用CGRect。
例如,我做了一些类似的事情:
layer.cornerRadius = 4
let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: [.topLeft, .topRight, .bottomLeft], cornerRadii: CGSize(width: 18.0, height: 0.0))
let maskLayer = CAShapeLayer()
maskLayer.path = maskPath.cgPath
layer.mask = maskLayer
但是,这依赖于bounds CGRect,所以,当我的设备旋转时,一切都坏了。我可以更新layoutSubviews() 中的CGRect,但是,这是延迟 as shown in this article.
如果有人知道如何在UIView 的主层上设置不同的圆角半径(因此CALayer 或UIView 的边界将自动更新)我将非常感激!
【问题讨论】:
标签: ios swift autolayout uikit calayer