swift2 不设置角半径

gzszwxb4  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(167)

我正在尝试将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:


指令集

ztyzrc3y

ztyzrc3y1#

每次视图改变大小时,您都必须更新遮罩,因此理想情况下,您应该在每次调用UIView.layoutSubviews时都更改遮罩:

override func layoutSubviews() {
   super.layoutSubviews();
   // update mask
}

在一个扩展帮助器方法中做这件事并不理想。你应该创建一个特定的类来处理大小的变化。

相关问题