当我尝试在视图中设置角半径时,我看到我有两个选择。
swift 中这两个结构有什么区别:
CACornerMask和UIRectCorner
小智 6
CACornerMask 是在 iOS 11 中添加的。它归结为用例。
我们通常将角半径设置为CALayer,因此使用CACornerMask非常容易。
let view = UIView()
view.layer.cornerRadius = 5
view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMaxYCorner]
Run Code Online (Sandbox Code Playgroud)
与使用 UIRectCorner 相反:
var cornerMask = UIRectCorner()
cornerMask.insert(.bottomLeft)
cornerMask.insert(.bottomRight)
let path = UIBezierPath(roundedRect: self.bounds,
byRoundingCorners: cornerMask,
cornerRadii: CGSize(width: 5, height: 5))
let mask = CAShapeLayer()
mask.path = path.cgPath
let view = UIView()
view.layer.mask = mask
Run Code Online (Sandbox Code Playgroud)
当您已经做了一些 UIBezierPath 操作时,第二个示例会变得很方便。
对于大多数简单的用例,您可能会使用 CACornerMask。
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |