`
啸笑天
  • 浏览: 3459446 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

ios8中的UIScreen

    博客分类:
  • ios
 
阅读更多

 

   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

 

 

 

 

 

 

分享到:
评论

相关推荐

    ios7 ios6(3.5inch,4inch)适配

    4. **尺寸类别(Size Classes)**:尺寸类别是iOS8引入的一个特性,虽然不在iOS6中可用,但了解这一概念有助于理解屏幕适配的原理。尺寸类别可以帮助区分横屏和竖屏,以及不同尺寸的设备。 5. **代码适配**:在某些...

    ios-iOS传感器集锦.zip

    在iOS开发中,传感器技术是实现丰富用户体验的关键组成部分。标题"ios-iOS传感器集锦.zip"揭示了这个压缩包可能包含一系列与iOS设备中的多种传感器相关的示例代码或教程。这些传感器包括指纹识别、运动传感器(如加...

    iOS伪亮度控制demo

    在iOS中,屏幕亮度的管理主要依赖于`UIScreen`类,该类提供了调整屏幕亮度的方法。例如,`UIScreen`的`brightness`属性可以用来获取或设置屏幕当前的亮度值,这个值范围在0.0(最暗)到1.0(最亮)之间。为了实时...

    读取设备信息 ios

    在iOS开发中,获取设备信息是一项基础且重要的任务。标题提到的“读取设备信息 iOS”主要涉及到如何从iOS设备中获取特定的数据,如UUID(Universally Unique Identifier)和MAC(Media Access Control)地址。这些...

    UIScreen学习记录

    8. **适配策略**:在实际开发中,开发者需要根据UIScreen的属性来实现自适应布局,比如使用Auto Layout和Size Classes,确保UI在不同屏幕尺寸下都能正确显示。 9. **性能优化**:利用UIScreen的信息,可以优化图像...

    swift-iOS开发中手机截图分享功能.类似新浪微博app

    在iOS应用开发中,Swift语言提供了丰富的框架和API来实现各种功能,其中之一就是手机截图分享。这个功能在很多社交应用中都非常常见,比如新浪微博。在本教程中,我们将深入探讨如何在Swift中实现类似新浪微博的手机...

    swift-iOS判断设备型号总结

    在iOS应用开发中,有时我们需要根据用户的设备型号来提供特定的功能或者优化用户体验。Swift作为苹果官方推荐的编程语言,提供了方便的方式来获取设备信息。本文将深入探讨如何在Swift中判断iOS设备的型号。 首先,...

    iOS页面亮度高亮,跳转到二维码页面屏幕变亮,退出恢复系统亮度,以及按”Home“键后通过系统代理设置系统的亮度

    在iOS开发中,为了优化用户体验,特别是在涉及到扫描二维码或显示重要内容的场景,我们有时需要临时调整设备的屏幕亮度。这个过程通常包括两个关键步骤:提高屏幕亮度和在适当的时候恢复原始亮度。标题和描述中提到...

    iOS页面亮度调整

    首先,iOS提供了一个名为`UIScreen`的类,它代表了设备的屏幕,并提供了调整亮度的接口。要调整屏幕亮度,我们可以使用`UIScreen`的`brightness`属性。这个属性的值范围是0.0(最暗)到1.0(最亮),我们可以根据...

    为按钮位置配置不同的IOS背景

    在iOS应用开发中,为按钮配置不同的背景是一个常见的需求,特别是在设计用户界面时,为了提供良好的用户体验,我们可能需要在不同位置放置按钮,并确保它们在各种屏幕尺寸上都能正确显示。本文将详细介绍如何在Swift...

    苹果ios开发一年的工作笔记.pdf

    * UIScreen:iOS 中的屏幕类,可以使用 mainScreen: 方法来获取当前屏幕,bounds: 方法来获取屏幕的 bounds。 * UIApplication:iOS 中的应用程序类,可以使用 sharedApplication: 方法来获取当前应用程序,...

    iOS获取系统启动图(小封装了一下)

    在iOS开发中,启动图(Launch Screen)是应用在启动时显示的页面,它能给用户带来良好的第一印象,同时也是应用程序加载过程中的视觉反馈。本文将深入探讨如何在iOS项目中获取并处理系统启动图,以及对其进行小封装...

    IOS的app运行时不满屏,上下留有黑边

    在Xcode中,启动图片用于旧版的iOS设备,而启动屏幕则是一个Storyboard文件,适用于iOS 8及更高版本,可以动态适应各种屏幕尺寸。当你的应用在不同设备上显示黑边,很可能是由于启动图片或启动屏幕没有正确配置。 ...

    iOS 实现霓虹灯操作

    在iOS开发中,实现霓虹灯效果是一种常见的视觉特效,可以为用户界面增添动态和吸引人的元素。霓虹灯效果通常涉及到文字或者图形在颜色、亮度上的动态变化,模拟真实的霓虹灯管闪烁效果。本教程将指导你如何在iOS应用...

    iOS开发中常用的一些宏定义.zip

    在iOS开发过程中,宏定义(Macro Definitions)是Objective-C编程中一种常见的技术,它允许开发者在编译时进行代码替换,提高代码的可读性和可维护性。`Macro-master`这个压缩包文件很可能是包含了一些常用的宏定义...

    iOS 开发中总结的各种工具类。

    在iOS开发中,工具类是开发者经常会用到的代码模块,它们封装了常见的操作,提高了代码的可复用性和效率。本压缩包中的"SYJToolManager"很可能是一个集成了多种实用工具方法的类别或框架,包括对UIImage、UIScreen、...

    IOS版本兼容与屏幕适配

    在屏幕适配中,我们需要了解 self.view、self.bounds、uiview autosizing、比例【uiscreen mainscreen】bounds.size 等概念。这些概念对于我们开发适配的应用程序非常重要。 IOS 版本兼容与屏幕适配是移动应用开发...

    iOS- 解决App上下黑边

    iOS设备有多种屏幕尺寸,包括iPhone SE、iPhone 8/8 Plus、iPhone X系列以及iPad等。你需要确保应用能在所有这些设备上正确显示。使用Size Classes可以为不同设备设置独立的布局,同时在代码中可以通过`UIScreen....

Global site tag (gtag.js) - Google Analytics