Получить размер экрана на iOS 8

Я попробовал [[UIScreen mainScreen] bounds] получить размер экрана изменяемого размера iPhone на симуляторе Xcode 6. Но он не учитывает новую ширину экрана и высоту экрана, которые я им назначаю.

Есть ли лучший способ получить размер экрана? Даже если я установил размер экрана 320x800, [[UIScreen mainScreen] bounds] вернет мне (CGRect) $0 = origin=(x=0, y=0) size=(width=768, height=1024)

enter image description here

Ответ 1

Сделайте следующее

CGRect Rect = [[UIScreen mainScreen]),

Таким образом, он сохранит границы в rect. попробуйте один раз.

Ответ 2

В Swift 4.0, 3.0

let screenRect:CGRect = UIScreen.main.bounds

Ответ 3

Это происходит в iOS8 и iOS9. Не уверен, что 7 не тестировались:

var screenWidth: CGFloat {
    if UIInterfaceOrientationIsPortrait(screenOrientation) {
        return UIScreen.mainScreen().bounds.size.width
    } else {
        return UIScreen.mainScreen().bounds.size.height
    }
}
var screenHeight: CGFloat {
    if UIInterfaceOrientationIsPortrait(screenOrientation) {
        return UIScreen.mainScreen().bounds.size.height
    } else {
        return UIScreen.mainScreen().bounds.size.width
    }
}
var screenOrientation: UIInterfaceOrientation {
    return UIApplication.sharedApplication().statusBarOrientation
}

Они включены как стандартная функция в:

https://github.com/goktugyil/EZSwiftExtensions