radiusCorner 和按钮

radiusCorner and button

我的按钮有点问题。

我的按钮在垂直堆栈视图中。

我只想为我的按钮 #1 顶部的角做圆角。

我的代码:

extension UIButton {
     func roundedButton(){
        let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: [.topLeft , .topRight], cornerRadii: CGSize(width: 5, height: 5))
        let mask = CAShapeLayer()
        mask.frame = self.bounds
        mask.masksToBounds = true
        mask.path = path.cgPath
        layer.mask = mask
    }
}

使用:

bouton1.roundedButton()

但是结果并不好..

为什么我的按钮不完整? 你有好主意吗 ?

谢谢你的帮助:)

我认为你的问题是因为你在错误的地方调用了那个方法。

在 UI 更新已经正确呈现后,需要调用需要获取组件正确 rect 值的东西。

在调用 bouton1.roundedButton() 之前添加 view.setNeedsLayout()view.layoutIfNeeded() 应该可以解决您的问题。