Tim*_*Tim 100
您可以bounds在UIScreen的实例上使用该属性:
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;
Run Code Online (Sandbox Code Playgroud)
大多数人都想要主屏幕; 如果你有一台设备连接到电视,你可能想要迭代UIScreens并获得每个设备的界限.
有关UIScreen类文档的更多信息.
mog*_*ter 22
这是一个'迅捷'的解决方案:(更新为swift 3.x)
let screenWidth = UIScreen.main.fixedCoordinateSpace.bounds.width
let screenHeight = UIScreen.main.fixedCoordinateSpace.bounds.height
Run Code Online (Sandbox Code Playgroud)
这会以点为单位报告,并且"始终以纵向方向反映设备的屏幕尺寸" (Apple Docs).无需烦恼UIAnnoyinglyLongDeviceOrientation!
如果您希望宽度和高度反映设备方向:
let screenWidth = UIScreen.main.bounds.width
let screenHeight = UIScreen.main.bounds.height
Run Code Online (Sandbox Code Playgroud)
这里宽度和高度将根据屏幕是纵向还是横向显示翻转值.
以下是如何以像素为单位测量屏幕尺寸而不是点:
let screenWidthInPixels = UIScreen.main.nativeBounds.width
let screenHeightInPixels = UIScreen.main.nativeBounds.height
Run Code Online (Sandbox Code Playgroud)
这也"基于设备的纵向向上.该值不会随着设备的旋转而改变." (Apple Docs)
请注意,对于swift 2.x及更低版本,您应该使用UIScreen.mainScreen()而不是UIScreen.main
使用此代码修复iOS8:
float SW;
float SH;
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if (( [[[UIDevice currentDevice] systemVersion] floatValue]<8) && UIInterfaceOrientationIsLandscape(orientation))
{
SW = [[UIScreen mainScreen] bounds].size.height;
SH = [[UIScreen mainScreen] bounds].size.width;
}
else
{
SW = [[UIScreen mainScreen] bounds].size.width;
SH = [[UIScreen mainScreen] bounds].size.height;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74297 次 |
| 最近记录: |