Я экспериментировал и не нашел убедительного угла поворота для iPhone X.
- Некоторые источники, такие как iPhone X Screen Demystified - PaintCode , говорят, что его 40pt.
- Некоторые говорят, что это 44, как UI Design для iPhone X: Top Elements и Notch - Макс Рудберг .
Используя 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?
Брэд Эллис имеет статью с подробным описанием кривых на iPhone X .
Вы можете увидеть разницу здесь:
источник
Следующая строка Objective-C
Выполненный в симуляторе iOS 11.0.1 на iPhone X выдает следующий вывод:
Похоже, в какой-то момент кто-то из Apple подумал, что радиус угла равен 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.
источник
Форма углов не может быть описана как дуга. Однако его можно воспроизвести с помощью общедоступного API, поскольку iOS 11.
UIBezierPath.init(roundedRect:cornerRadius:)
создаст прямоугольник с непрерывными закругленными углами.Источник: https://medium.com/fueled-engineering/continuous-ounded-corners-with-uikit-b575d50ab232
iOS 13 представила явное
cornerCurve
свойство на CALayer: https://developer.apple.com/documentation/quartzcore/calayercornercurveисточник