Ich habe experimentiert und keinen eindeutigen Eckenradius für das iPhone X gefunden.
- Einige Quellen, wie iPhone X Screen Demystified - PaintCode , sagen, dass es 40 Punkte sind.
- Einige sagen, es ist 44, wie UI Design für iPhone X: Top Elements und die Kerbe - Max Rudberg .
Mit Xcode habe ich einen Kreis mit einer Breite und Länge von 80 (also Radius 40) erstellt und ihn in die obere linke Ecke des iPhone X gelegt (also sind x und y Null). Zwischen dem Kreis befindet sich eine winzige weiße Lücke und der Rand des Bildschirms, den Sie hier sehen können:
Ich habe auch eine andere Methode ausprobiert, indem ich dies mit einem Knopf tat:
button.frame.size.height = 812
button.frame.size.width = 375
button.layer.cornerRadius = 40
button.center = self.view.center
Damit bleibt mir übrig:
Die Frage ist also, was ist der tatsächliche Eckenradius? Oder was ist mit Xcode los?
Brad Ellis hat einen Artikel detailliert die Kurven auf dem iPhone X .
Sie können den Unterschied hier sehen:
quelle
Die folgende Objective-C-Zeile
Die Ausführung im iOS 11.0.1-Simulator auf dem iPhone X erzeugt die folgende Ausgabe:
So ist es wie bei sieht irgendwann in der Zeit, jemand bei Apple dachte der Eckenradius 39 Punkte waren. Ich denke, das ist die offiziellste Antwort, die wir bekommen werden. :-) Aber wie die anderen Antworten erklären, sind diese Informationen nicht sehr nützlich ...
Noch mehr nutzlose Informationen: Einige andere iOS 11.0 und 11.1 Simulatoren berichten
_UITraitNameDisplayCornerRadius = 0.000000
für iPhones ohne abgerundete Ecken (siehe zB diese Frage SO ), aber der Simulator für iOS 12.2 ist nicht enthalten die_UITraitNameDisplayCornerRadius
Eigenschaft in der Protokollausgabe fürUITraitCollection
, genauso wenig wie ein echtes iPhone X Ausführen von iOS 11.2.1. Ich denke, sie haben diese Eigenschaft aus der Protokollausgabe in iOS 11.2 oder so entfernt.PS: Ich denke, es spielt keine Rolle, aber ich habe diese Ergebnisse auf Xcode 10.1 erhalten.
quelle
Die Form der Ecken kann nicht als Bogen beschrieben werden. Es kann jedoch mit der öffentlichen API reproduziert werden, da iOS 11.
UIBezierPath.init(roundedRect:cornerRadius:)
ein Rechteck mit durchgehenden abgerundeten Ecken erstellt.Quelle: https://medium.com/fueled-engineering/continuous-rounded-corners-with-uikit-b575d50ab232
iOS 13 hat eine explizite
cornerCurve
Eigenschaft in CALayer eingeführt: https://developer.apple.com/documentation/quartzcore/calayercornercurvequelle