Як можна отримати розміри екрана в iOS?
Проблема з опублікованим вами кодом полягає в тому, що ви розраховуєте на розмір перегляду, який відповідає розміру екрана, і, як ви бачили, це не завжди так. Якщо вам потрібен розмір екрана, ви повинні подивитися на об'єкт, що представляє сам екран, як це:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
Оновлення для розділеного перегляду: У коментарях Дмитро запитав:
Як я можу отримати розмір екрана в розділеному вигляді?
Код, наведений вище, повідомляє про розмір екрана, навіть у режимі розділеного екрана. Під час використання режиму розділеного екрана вікно програми змінюється. Якщо наведений вище код не дає вам очікуваної інформації, то, як і ОП, ви дивитесь на неправильний об’єкт. Однак у цьому випадку слід дивитись у вікно замість екрана:
CGRect windowRect = self.view.window.frame;
CGFloat windowWidth = windowRect.size.width;
CGFloat windowHeight = windowRect.size.height;
Швидкий 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