2014-09-02 132 views
10

我试过[[UIScreen mainScreen] bounds]以在Xcode 6模拟器上获得可调整大小的iPhone的屏幕尺寸。但它没有考虑我分配给它的新的屏幕宽度和屏幕高度。在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 2014-09-02 06:09:57

回答

16

执行以下

的CGRect矩形= [[UIScreen mainScreen]界限]。

所以它会保留矩形的边界。 尝试一次。

+1

你需要删除*为此工作。否则会引发错误。 – 2015-02-24 15:50:28

+0

这不适用于iPhone 5上的iOS 8.4.1。正在检测iPhone 4/4S的屏幕尺寸 – user2924482 2016-02-02 20:39:31

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

在夫特4.0,3.0

let screenRect:CGRect = UIScreen.main.bounds