gpt4 book ai didi

ios - 使用 AutoLayout 将圆角半径应用于 UIView 的顶部

转载 作者:可可西里 更新时间:2023-11-01 00:59:11 28 4
gpt4 key购买 nike

我扩展了 UIView 以添加一个 round() 方法来将角半径应用到特定的角:

extension UIView {
func round(corners: UIRectCorner, radius: CGFloat) -> CAShapeLayer {
let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSizeMake(radius, radius))
let mask = CAShapeLayer()
mask.path = path.CGPath
self.layer.mask = mask

return mask
}
}

在一个 View Controller 中,我有以下层次结构:

  • 堆栈 View
    • 界面 View

Constraint 设置为 top, leading, trailing 都为 0。
我的问题是当我运行(仅)5.5 英寸屏幕时,UIView 没有像我应用角半径时应该的那样一直拉伸(stretch):

override func viewDidLayoutSubviews() {
self.greenview.round([.TopLeft, .TopRight], radius: CGFloat(10))
}

如果我删除此行,它会正常工作。我是不是在正确的地方调用了这个方法?

这是问题的屏幕截图:

enter image description here

最佳答案

尝试在调用 super 方法后将其放入“layoutSubviews”。它更适合依赖于边界的 UI 更改。

关于ios - 使用 AutoLayout 将圆角半径应用于 UIView 的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38162017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com