UIBezierPath在TopRight角和BottomRight角不起作用

我想右上角,但仅适用于左上角

let path = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: [UIRectCorner.TopLeft, UIRectCorner.TopRight], cornerRadii: CGSizeMake(20.0, 20.0))

let maskLayer = CAShapeLayer()

maskLayer.path = path.CGPath

view.layer.mask = maskLayer

view.layer.masksToBounds = true

回答:

问题在于您需要在为当前设备调整视图大小之前获取视图的边界。它比以后在屏幕上出现时要大,因此,圆角矩形的右侧不在屏幕的右侧。

在调整视图大小之后,您需要稍后创建path和设置maskLayer.path,这意味着在运行循环的布局阶段期间或之后。因此,要么继承视图的子类并在视图的layoutSubviews方法中进行操作,要么在视图控制器的viewDidLayoutSubviews方法中进行操作。

以上是 UIBezierPath在TopRight角和BottomRight角不起作用 的全部内容, 来源链接: utcz.com/qa/419076.html

回到顶部