检查 iPhone / iPad 显示屏的圆角半径。
为 UIScreen
添加一个 displayCornerRadius
属性,它读取私有的 _displayCornerRadius
。 这个选择器在某种程度上是模糊的,这通常意味着它可以通过应用审核。 但是,使用风险自负!
我不想使用型号标识符(例如,iPhone10,2
)而错过国际版本,或者在新设备发布时不得不更新它。
使用屏幕分辨率也很棘手,因为多款设备共享相同的分辨率,但圆角半径不同。“显示缩放”也会对此造成影响,而且最终,根据显示分辨率来假设设备的任何信息似乎都不是一个好主意。
iOS 设备显示屏使用连续的圆角曲线,这意味着角不是真正的圆形。在 iOS 13+ 中,你可以使用 CALayer.cornerCurve
来指定连续的圆角曲线。你可以像这样创建一个视图子类
class DisplayCornerMatchingView: UIView {
override func layoutSubviews()
super.layoutSubviews()
layer.cornerCurve = .continuous
layer.cornerRadius = window?.screen.displayCornerRadius ?? 0
}
}
或者,也许你想从不同的圆角半径动画到屏幕上的圆角半径。无论哪种方式,请务必在视图上设置 layer.cornerCurve = .continuous
。
以下是报告的具有圆角的各种设备的值
设备 | 值 (pts) |
---|---|
iPhone X, Xs, Xs Max, 11 Pro, 11 Pro Max | 39.0 |
iPhone Xr, 11 | 41.5 |
iPhone 12 mini, 13 mini | 44.0 |
iPhone 12, 12 Pro, 13 Pro, 14 | 47.33 |
iPhone 12 Pro Max, 13 Pro Max, 14 Plus | 53.33 |
iPhone 14 Pro, 14 Pro Max, 15, 15 Plus, 15 Pro, 15 Pro Max, 16, 16 Plus | 55.0 |
iPhone 16 Pro, 16 Pro Max | 62.0 |
iPad Air / iPad Pro 11 英寸 / 12.9 英寸 | 18.0 |