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)
我得到一个不正确的结果(按钮的文字不再居中也不覆盖整个宽度):
问题出在哪儿?谢谢
您不应该使用button.bounds,viewDidLoad()因为此时未设置视图的几何图形.试试你的代码移动到viewWillAppear()或viewDidLayoutSubviews()其中的界限将是正确的.