Eksperymentowałem i nie znalazłem żadnego rozstrzygającego promienia narożnika dla iPhone'a X.
- Niektóre źródła, takie jak iPhone X Screen Demystified - PaintCode , mówią, że to 40 punktów.
- Niektórzy twierdzą, że to 44, jak UI Design na iPhone'a X: Top Elements i Notch - Max Rudberg .
Korzystając z Xcode, utworzyłem okrąg o szerokości i długości 80 (więc promień 40) i umieściłem go w lewym górnym rogu iPhone'a X (tak, aby x iy wynosiły zero), między kółkiem jest mała biała szczelina i krawędź ekranu, którą możesz zobaczyć tutaj:
Próbowałem też innej metody, robiąc to za pomocą przycisku:
button.frame.size.height = 812
button.frame.size.width = 375
button.layer.cornerRadius = 40
button.center = self.view.center
Pozostają mi przy tym:
Pytanie brzmi: jaki jest prawdziwy promień narożnika? A co się dzieje z Xcode?
Brad Ellis ma artykuł szczegółowo krzywe na iPhone X .
Różnicę możesz zobaczyć tutaj:
źródło
Następująca linia Celu-C
wykonywane w symulatorze iOS 11.0.1 na iPhonie X daje następujące wyniki:
Wygląda więc na to w pewnym momencie w czasie, ktoś w Apple myśli promień rogu było 39 punktów. To chyba najbardziej oficjalna odpowiedź, jaką otrzymamy. :-) Ale jak wyjaśniają inne odpowiedzi, informacja ta nie jest zbyt przydatna ...
Jeszcze bardziej bezużyteczne informacje: niektóre inne symulatory iOS 11.0 i 11.1 raportują
_UITraitNameDisplayCornerRadius = 0.000000
dla iPhone'ów bez zaokrąglonych rogów (np. Patrz to pytanie SO ), ale symulator dla iOS 12.2 nie zawiera_UITraitNameDisplayCornerRadius
właściwości w danych wyjściowych dziennikaUITraitCollection
, podobnie jak prawdziwy iPhone X z systemem iOS 11.2.1. Myślę, że usunęli tę właściwość z danych wyjściowych dziennika w iOS 11.2 lub mniej więcej.PS: Myślę, że to nie ma znaczenia, ale mam te wyniki na Xcode 10.1.
źródło
Kształt narożników nie może być opisany jako łuk. Można go jednak odtworzyć za pomocą publicznego interfejsu API, ponieważ iOS 11.
UIBezierPath.init(roundedRect:cornerRadius:)
utworzy prostokąt z ciągłymi zaokrąglonymi narożnikami.Źródło: https://medium.com/fueled-engineering/continuous-rounded-corners-with-uikit-b575d50ab232
iOS 13 wprowadził jawną
cornerCurve
właściwość CALayer: https://developer.apple.com/documentation/quartzcore/calayercornercurveźródło