CornerRadius 未设置
Posted
技术标签:
【中文标题】CornerRadius 未设置【英文标题】:CornerRadius don't set 【发布时间】:2019-04-05 15:04:37 【问题描述】:我正在尝试在左下角和右下角的 UIView 上圆角。
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:
【问题讨论】:
【参考方案1】:您必须在每次视图更改其大小时更新掩码,因此理想情况下您应该在调用UIView.layoutSubviews
时更改它:
override func layoutSubviews()
super.layoutSubviews();
// update mask
在扩展助手方法中这样做并不理想。您应该创建一个特定的类来处理大小变化。
【讨论】:
以上是关于CornerRadius 未设置的主要内容,如果未能解决你的问题,请参考以下文章
使用将 maskToBounds 设置为 true 和cornerRadius 不会更改视图
根据子类中的 UIButton 大小设置cornerRadius 的最佳位置?