Como obter as dimensões da tela no iOS?
O problema com o código que você postou é que você conta com o tamanho da visualização para corresponder ao tamanho da tela e, como você viu, nem sempre é esse o caso. Se você precisar do tamanho da tela, observe o objeto que representa a própria tela, assim:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
Atualização para exibição dividida: nos comentários, Dmitry perguntou:
Como posso obter o tamanho da tela na exibição dividida?
O código fornecido acima informa o tamanho da tela, mesmo no modo de tela dividida. Quando você usa o modo de tela dividida, a janela do seu aplicativo muda. Se o código acima não fornecer as informações que você espera, então, como o OP, você está vendo o objeto errado. Nesse caso, porém, você deve olhar para a janela em vez da tela, assim:
CGRect windowRect = self.view.window.frame;
CGFloat windowWidth = windowRect.size.width;
CGFloat windowHeight = windowRect.size.height;
Swift 4.2
let screenRect = UIScreen.main.bounds
let screenWidth = screenRect.size.width
let screenHeight = screenRect.size.height
// split screen
let windowRect = self.view.window?.frame
let windowWidth = windowRect?.size.width
let windowHeight = windowRect?.size.height