【发布时间】:2020-10-31 02:09:33
【问题描述】:
我需要在视图的左上角和右上角获得圆角。下面是相同的代码。
let size = CGSize(width: 30, height: 30)
let bezierPath = UIBezierPath(roundedRect: self.alertView.bounds, byRoundingCorners: [.topRight, .topLeft], cornerRadii: size)
let shapeLayer = CAShapeLayer()
shapeLayer.frame = self.alertView.bounds
shapeLayer.path = bezierPath.cgPath
self.alertView.layer.mask = shapeLayer
这在 iPhone 8 plus 及更高版本的所有模拟器中都可以正常工作。但对于其余的模拟器,如 iPhone 6、iPhone 6 plus 等,代码无法按要求工作。我什至尝试使用多种类型的视图,但它没有按照要求工作。我只在左侧得到圆角,但在右侧没有。下面是不同模拟器的 UIView 截图
iPhone 11(工作正常)
iPhone 8(不按要求工作)
我在这里没有遇到问题。请帮忙!
【问题讨论】:
-
您使用的是哪个 iOS 版本?
-
那个角是什么时候创建的?我猜?在根据大小(cf 约束)进行布局之前,您这样做得太早了。
-
你在哪里称呼这个?
-
stackoverflow.com/questions/48569864/… 例如,这时你应该调用它。
-
@PGDev 我正在使用最新的 iOS 13 版本。
标签: ios swift xcode uiview uibezierpath