作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想圆化我的右角,但只适用于左角
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
最佳答案
问题是您在为当前设备调整 View 大小之前就获取了 View 的边界。它比稍后出现在屏幕上时要大,因此圆角矩形的右侧超出了屏幕的右侧。
您需要在 View 大小调整后(这意味着在运行循环的布局阶段期间或之后)创建path
并设置maskLayer.path
。因此,要么对 View 进行子类化并在 View 的 layoutSubviews
方法中执行此操作,要么在 View Controller 的 viewDidLayoutSubviews
方法中执行此操作。
关于swift - UIBezierPath 不适用于右上角和右下角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40185428/
我是一名优秀的程序员,十分优秀!