
[英]Using maskToBounds set to true with cornerRadius doesn't change the view
[英]CornerRadius don't set
extension UIView {
func roundBottom(raduis: CGFloat){
let maskPath1 = UIBezierPath(roundedRect: bounds,
byRoundingCorners: [.BottomRight, .BottomLeft],
cornerRadii: CGSize(width: raduis, height: raduis))
let maskLayer1 = CAShapeLayer()
maskLayer1.frame = bounds
maskLayer1.path = maskPath1.CGPath
layer.mask = maskLayer1
}
}
并调用cell.bottomCorner.roundBottom(8)
但我明白了:
iphone 5:
iPhone 6s:
iPhone 6s Plus:
每次视图更改其大小时都必须更新掩码,因此理想情况下,只要UIView.layoutSubviews
就应该更改它:
override func layoutSubviews() {
super.layoutSubviews();
// update mask
}
在扩展辅助方法中执行此操作并不理想。 您应该创建一个特定的类来处理大小更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.