Solución:
Las esquinas del iPhone X no tengo un radio de esquina concluyente. No son arcos normales, lo son ‘esquinas continuas‘.
No puede replicarlos con un simple .cornerRadius, y tampoco puede usar las propias esquinas continuas de Apple, ya que es una API privada.
CALayer en iOS 11 tiene una propiedad privada “continuosCórners”, que es lo que impulsa muchas esquinas redondeadas en SpringBoard, ¡y probablemente más! Ahora estoy celoso.
https://twitter.com/argentumko/status/955773459463790592
Lo más cercano que puede obtener sin su propia implementación es el dibujo de rectángulo redondeado de UIBezierPath, que usa _continuousRoundedRectBezierPath
.
Brad Ellis tiene un artículo que detalla las curvas del iPhone X.
[..] Las esquinas redondeadas de la pantalla del iPhone X no utilizan el método de redondeo clásico en el que te mueves en línea recta y luego haces un arco usando un solo cuadrante de un círculo. En cambio, las matemáticas son un poco más complicadas. Comúnmente llamado squircle, la pendiente comienza antes, pero es más suave.
Puedes ver la diferencia aquí:
La forma de las esquinas no se puede describir como un arco. Sin embargo, se puede reproducir utilizando una API pública desde iOS 11. UIBezierPath.init(roundedRect:cornerRadius:)
creará un rectángulo con esquinas redondeadas continuas.
Fuente: https://medium.com/fueled-engineering/continuous-dered-corners-with-uikit-b575d50ab232
iOS 13 introdujo un explícito cornerCurve
propiedad en CALayer: https://developer.apple.com/documentation/quartzcore/calayercornercurve