StackView内的圆角无法正确显示

Add*_*dev 0 objective-c interface-builder ios swift

我的界面构建器中有一个简单的StackView,间距相等:

在此输入图像描述

当我运行应用程序时,按钮的位置和大小是正确的(完全如界面构建器中所示)但是当我尝试使用以下代码在中间的按钮的角落:

override func viewDidLoad() {
    super.viewDidLoad()        
    let maskPath = UIBezierPath(roundedRect: button.bounds,
                                byRoundingCorners: [.bottomLeft,.bottomRight],
                                cornerRadii: CGSize(width: 10.0, height: 10.0))
    let shape = CAShapeLayer()
    shape.path = maskPath.cgPath
    button.layer.mask = shape

}
Run Code Online (Sandbox Code Playgroud)

我得到一个不正确的结果(按钮的文字不再居中也不覆盖整个宽度):

在此输入图像描述

问题出在哪儿?谢谢

Muh*_*han 5

您不应该使用button.bounds,viewDidLoad()因为此时未设置视图的几何图形.试试你的代码移动到viewWillAppear()或viewDidLayoutSubviews()其中的界限将是正确的.