Как получить размеры экрана в iOS?
Проблема с кодом, который вы разместили, заключается в том, что вы рассчитываете на размер представления, соответствующий размеру экрана.экран, и, как вы видели, это не всегда так.Если вам нужен размер экрана, вы должны посмотреть на объект, который представляет сам экран, например:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
Обновление для разделенного вида: В комментариях Дмитрий спросил:
Как узнать размер экрана в режиме разделения экрана?
Приведенный выше код сообщает размер экрана даже в режиме разделения экрана.Когда вы используете режим разделенного экрана, окно вашего приложения меняется.Если приведенный выше код не дает ожидаемой информации, то, как и OP, вы смотрите не на тот объект.В этом случае, однако, вы должны смотреть на окно, а не на экран, например:
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