UIScreen.main.bounds que devuelve un tamaño incorrecto

UIScreen.main.bounds.width y UIScreen.main.bounds.height son incorrectos. Está devolviendo 414x736 pero debería ser alrededor de 360x640. Dispositivo: iPhone 8 Plus.

Answer

[Any]Las resoluciones de renderizado nativas de iPhone Plus se reducen en ÷1.15 porque las pantallas no tenían suficientes píxeles para mostrar @3x hasta que llegó el iPhone X.

La resolución de la pantalla es de 360 ​​x 640 puntos físicos, pero la visualización de la pantalla es de 414 x 736 puntos de software. Eso solo pasa en los Plusmodelos.

414 ÷ 1.15 = 360
736 ÷ 1.15 = 640

Mira esto: https://www.paintcodeapp.com/news/iphone-6-screens-demystified

ingrese la descripción de la imagen aquí

Depende de cuándo llames a la función.

Tienes que llamar a esto después de Ver aparecer completamente.

override func viewDidLoad() { // Or viewDidAppear()
{
    let frame = self.view.bounds; // or UIScreen.main.bounds also works
}

Obtendrá un valor diferente si llama a la función en viewWillAppear.