ScreenCorners 1.0.1

ScreenCorners 1.0.1

Kyle Bashour 维护。



  • Kyle Bashour

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