2014-09-02 24 views
10

Ich versuchte [[UIScreen mainScreen] bounds], um die Bildschirmgröße eines resizable iPhone auf Xcode 6 Simulator zu erhalten. Aber es berücksichtigt nicht die neue Bildschirmbreite und Bildschirmhöhe, die ich ihm zugebe.Get Bildschirmgröße auf iOS 8

Gibt es einen besseren Weg, um die Bildschirmgröße zu bekommen? Auch wenn ich die Bildschirmgröße 320x800 setzen die [[UIScreen mainScreen] bounds] gibt mir (CGRect) $0 = origin=(x=0, y=0) size=(width=768, height=1024)

enter image description here

+1

In einem View-Controller haben hast du self.view.bounds ausprobiert? – WMios

Antwort

16

Sie folgende

CGRect Rect = [[UIScreen mainscreen] Grenzen];

So wird es die Grenzen in der Rect beibehalten. einmal versuchen.

+1

Sie müssen das * entfernen, damit dies funktioniert. Andernfalls wird ein Fehler ausgegeben. –

+0

Dies funktioniert nicht mit iOS 8.4.1 auf dem iPhone 5. Erkennt die Bildschirmgröße des iPhone 4/4S – user2924482

1

Dies wird in iOS8 und iOS9. Nicht sicher 7 nicht getestet:

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 
} 

Diese werden als Standardfunktion enthalten in:

https://github.com/goktugyil/EZSwiftExtensions

2

In Swift 4.0, 3,0

let screenRect:CGRect = UIScreen.main.bounds