2014-09-02 8 views
10

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

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

enter image description here

+1

В контроллере представления есть вы попробовали self.view.bounds? – WMios

ответ

16

ли следующие

CGRect Rect = [[UIScreen В начало] границы];

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

+1

Вам нужно удалить * для этого, чтобы работать. В противном случае это приводит к ошибке. –

+0

Это не работает с iOS 8.4.1 на iPhone 5. Определяет размер экрана iPhone 4/4S – user2924482

1

Это попадает в 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

2

В Swift 4.0, 3,0

let screenRect:CGRect = UIScreen.main.bounds 
Смежные вопросы