zoukankan      html  css  js  c++  java
  • ios8中的UIScreen

    Java代码  收藏代码
    1. let orientation: UIInterfaceOrientation = UIApplication.sharedApplication().statusBarOrientation  
    2.      println("Currently landscape: " + ((orientation == UIInterfaceOrientation.LandscapeLeft||orientation == UIInterfaceOrientation.LandscapeRight) ?"YES":"NO"))  
    3.      println("UIScreen.mainScreen().bounds: (UIScreen.mainScreen().bounds)")  
    4.      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中得到原来的效果可以:

    Java代码  收藏代码
    1. + (CGSize)screenSize {  
    2.     CGSize screenSize = [UIScreen mainScreen].bounds.size;  
    3.     return CGSizeMake(MIN(screenSize.width, screenSize.height), MAX(screenSize.width, screenSize.height));  
    4. }  

    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的值的不同来用        

    Java代码  收藏代码
    1. UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)  

    Java代码  收藏代码
    1. override func prefersStatusBarHidden() -> Bool {  
    2.       return false  
    3.   
    4.   }  

    显示横屏statusbar

  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1160 FatMouse's Speed
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1003 Max Sum
    HDU 1297 Children’s Queue
    UVA1584环状序列 Circular Sequence
    UVA442 矩阵链乘 Matrix Chain Multiplication
    DjangoModels修改后出现You are trying to add a non-nullable field 'download' to book without a default; we can't do that (the database needs something to populate existing rows). Please select a fix:
    opencv做的简单播放器
    c++文件流输入输出
  • 原文地址:https://www.cnblogs.com/lvyinbentengzhe/p/4262552.html
Copyright © 2011-2022 走看看