ios8中的UIScreen
来源:互联网 发布:js trim函数 编辑:程序博客网 时间:2024/04/26 20:54
- let orientation: UIInterfaceOrientation = UIApplication.sharedApplication().statusBarOrientation
- println("Currently landscape: " + ((orientation == UIInterfaceOrientation.LandscapeLeft||orientation == UIInterfaceOrientation.LandscapeRight) ?"YES":"NO"))
- println("UIScreen.mainScreen().bounds: \(UIScreen.mainScreen().bounds)")
- println("UIScreen.mainScreen().applicationFrame: \(UIScreen.mainScreen().applicationFrame)")
在ios7中输出:
Currently landscape: NO
UIScreen.mainScreen().bounds: (0.0,0.0,320.0,568.0)
UIScreen.mainScreen().applicationFrame: (0.0,20.0,320.0,548.0)
Currently landscape: YES
UIScreen.mainScreen().bounds: (0.0,0.0,320.0,568.0)
UIScreen.mainScreen().applicationFrame: (20.0,0.0,300.0,568.0)
在ios8中输出:
Currently landscape: NO
UIScreen.mainScreen().bounds: (0.0,0.0,320.0,568.0)
UIScreen.mainScreen().applicationFrame: (0.0,20.0,320.0,548.0)
Currently landscape: YES
UIScreen.mainScreen().bounds: (0.0,0.0,568.0,320.0)
UIScreen.mainScreen().applicationFrame: (0.0,0.0,568.0,320.0)
结论:
1、在ios7中UIScreen.mainScreen().bounds是固定不变的值,在ios8中他的值是随横竖屏改变的!
为了在ios8中得到原来的效果可以:
- + (CGSize)screenSize {
- CGSize screenSize = [UIScreen mainScreen].bounds.size;
- return CGSizeMake(MIN(screenSize.width, screenSize.height), MAX(screenSize.width, screenSize.height));
- }
2、
在ios8中增加了2个属性:
nativeBounds : 屏幕像素,不随横竖平改变的!
nativeScale :1(non retina)/2(retina)/3(retina hd)
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html#//apple_ref/occ/instp/UIScreen/nativeBounds
ios8输出:
Currently landscape: YES
UIScreen.mainScreen().bounds: (0.0,0.0,568.0,320.0)
UIScreen.mainScreen().applicationFrame: (0.0,20.0,568.0,300.0)
UIScreen.mainScreen().nativeBounds: (0.0,0.0,640.0,1136.0)
UIScreen.mainScreen().nativeScale: 2.0
Currently landscape: NO
UIScreen.mainScreen().bounds: (0.0,0.0,320.0,568.0)
UIScreen.mainScreen().applicationFrame: (0.0,20.0,320.0,548.0)
UIScreen.mainScreen().nativeBounds: (0.0,0.0,640.0,1136.0)
UIScreen.mainScreen().nativeScale: 2.0
3、从UIScreen.mainScreen().applicationFrame输出值看出,ios8默认横屏statusbar是隐藏掉了。你可以根据plist中
View controller-based status bar appearance的值的不同来用
- UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
或
- override func prefersStatusBarHidden() -> Bool {
- return false
- }
显示横屏statusbar
- ios8中的UIScreen
- ios8中的UIScreen
- ios8中的UIScreen
- iOS8中的[UIScreen mainScreen].bounds 和 [UIScreen mainScreen].applicationFrame
- 『IOS』ios8中的UIScreen
- iOS8中的UIScreen、UIWindow、键盘尺寸、状态栏尺寸的改动
- iOS8中的[UIScreen mainScreen].bounds 和 [UIScreen mainScreen].applicationFrame(下)
- [ UIScreen mainScreen ].bounds;在IOS7和IOS8的区别
- ios8和之前系统[UIScreen mainScreen].bounds的不一样
- UIScreen
- UIScreen
- UIScreen
- UIScreen 中的applicationFrame和bounds的区别
- ios7、ios8中的UITableViewCellEditingStyle
- iOS8中的playground新功能
- iOS8 中的 Size Class
- iOS8中的playground新功能
- iOS8中的Extension扩展
- 程序人生的四个象限和两条主线
- 关于socket长连接的心跳包
- Postgre: How to import UUID function into Postgre 9.3
- OpenCV图像处理篇之阈值操作函数
- BaseAdapter应用分析及异步加载
- ios8中的UIScreen
- tigase在linux上的绿色安装
- semop异常分析
- ArcSDE初学者需要弄清楚的几个问题 A
- hdu 1257 WA
- strace
- C++ 多线程
- 2014年工作中遇到的20个问题:81-100
- effective C++ 读书笔记 条款08