确切的iPhone X角半径是多少?


10

我一直在试验,没有发现iPhone X的确切拐角半径。

使用Xcode,我创建了一个宽度和长度为80(半径为40)的圆,并将其放在iPhone X的左上角(因此x和y为零),圆之间有一个很小的白色间隙和屏幕的边缘,您可以在此处看到:

我还尝试了另一种方法,使用按钮执行此操作:

button.frame.size.height = 812
button.frame.size.width = 375
button.layer.cornerRadius = 40
button.center = self.view.center

与此相关的是:

所以问题是,实际拐角半径是多少?还是Xcode发生了什么?

Answers:


16

iPhone X角落不具有结论性的圆角半径。它们不是普通弧,而是“ 连续角 ”。

您不能使用简单的.cornerRadius复制它们,也不能使用Apple自己的连续角,因为这是私有API。

iOS 11上的CALayer具有私有的“ continuousCorners”属性,该属性可以助长SpringBoard中的多个圆角,甚至可能更多!现在我很嫉妒。

https://twitter.com/argentumko/status/955773459463790592

没有您自己的实现,您可以获得的最接近的是UIBezierPath的圆角矩形绘图,该绘图使用_continuousRoundedRectBezierPath


非常感谢,这现在变得更加有意义
chriscrutt


1

以下Objective-C行

NSLog(@"%@", [self traitCollection]);

在iPhone X的iOS 11.0.1模拟器中执行的以下输出:

<UITraitCollection: ... _UITraitNameDisplayCornerRadius = 39.000000>

这样看来,在某个时间,苹果公司的某个人认为拐角半径为39点。我想这是我们得到的最正式的答案。:-)但是正如其他答案所解释的那样,该信息不是很有用...

甚至更多无用的信息:其他一些iOS 11.0和11.1模拟器_UITraitNameDisplayCornerRadius = 0.000000针对不带圆角的iPhone 报告(例如,参见此SO问题),但是iOS 12.2模拟器_UITraitNameDisplayCornerRadius在日志输出中包含属性UITraitCollection,而真正的iPhone X也不运行iOS 11.2.1。我猜他们从iOS 11.2左右的日志输出中删除了此属性。

PS:我想没关系,但是我在Xcode 10.1上得到了这些结果。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.