This question already has an answer here:
Custom Rounding corners on UIView
(1个答案)
3年前关闭。
我正在尝试使用UIBezierPath圆角化我的标签和按钮。问题是,当我使用它时,似乎忽略了告诉标签和按钮一直延伸到视图末端的约束。我如何获得与此相关的约束?这里有和没有UIBezierPath代码:
码:
(1个答案)
3年前关闭。
我正在尝试使用UIBezierPath圆角化我的标签和按钮。问题是,当我使用它时,似乎忽略了告诉标签和按钮一直延伸到视图末端的约束。我如何获得与此相关的约束?这里有和没有UIBezierPath代码:
码:
override func viewDidLoad() {
super.viewDidLoad()
let pathEULALabel = UIBezierPath(roundedRect:EULALabel.bounds, byRoundingCorners:[.TopLeft, .TopRight], cornerRadii: CGSizeMake(20, 20))
let maskLayerEULALabel = CAShapeLayer()
maskLayerEULALabel.path = pathEULALabel.CGPath
EULALabel.layer.mask = maskLayerEULALabel
let pathAcceptButton = UIBezierPath(roundedRect:acceptButton.bounds, byRoundingCorners:[.BottomLeft, .BottomRight], cornerRadii: CGSizeMake(20, 20))
let maskLayerAcceptButton = CAShapeLayer()
maskLayerAcceptButton.path = pathAcceptButton.CGPath
acceptButton.layer.mask = maskLayerAcceptButton
}
最佳答案
我猜想在调用viewDidLoad之后,视图的框架会发生变化。您所看到的圆角视图的大小可能是情节提要中视图的宽度。
尝试将您的代码放在viewDidLayoutSubviews中。这似乎是代码居住的更合适的地方。
另外,您可以研究制作一个@IBDesignable UIView扩展,该扩展使您可以直接从情节提要中舍入任何视图的角落。那是“很好/最好”的选择,尽管这也很好。
10-08 01:01