ScreenCorners
检查iPhone / iPad显示屏的圆角半径。
实现
为UIScreen
添加一个名为displayCornerRadius
的属性,该属性读取私有属性_displayCornerRadius
。选择器是base64编码的,这通常意味着它可以通过应用审查。然而,请自行承担风险!
为什么不直接硬编码这些值呢?
我不想使用型号标识符(即iPhone10,2
)并错过国际版本,或者当新设备发布时必须更新它。
使用屏幕分辨率也很棘手,因为多个设备共享相同的分辨率,并且具有不同的圆角半径。
如何使用
iOS设备显示屏使用连续的圆角曲线,这意味着角落并非真正的圆形。在iOS 13+中,您可以使用CALayer.cornerCurve
来指定连续的圆角曲线。您可以创建如下视图子类
class DisplayCornerMatchingView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
layer.cornerCurve = .continuous
layer.cornerRadius = UIScreen.main.displayCornerRadius
}
}
或者可能希望从不同的圆角半径动画到屏幕的那个。无论如何,务必在视图中设置layer.cornerCurve = .continuous
。
已报告的数值
在 iOS 14.1 上,以下数值为各个具有圆角的设备所报告
设备 | 数值 (pts) |
---|---|
iPhone X / Xs / Xs Max / 11 Pro / 11 Pro Max | 39.0 |
iPhone Xr / 11 | 41.5 |
iPhone 12 mini | 44.0 |
iPhone 12 / 12 Pro | 47.33 |
iPhone 12 Pro Max | 53.33 |
iPad Air / iPad Pro 11英寸 / 12.9英寸 | 18.0 |