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)
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
相关推荐
4. **尺寸类别(Size Classes)**:尺寸类别是iOS8引入的一个特性,虽然不在iOS6中可用,但了解这一概念有助于理解屏幕适配的原理。尺寸类别可以帮助区分横屏和竖屏,以及不同尺寸的设备。 5. **代码适配**:在某些...
在iOS开发中,传感器技术是实现丰富用户体验的关键组成部分。标题"ios-iOS传感器集锦.zip"揭示了这个压缩包可能包含一系列与iOS设备中的多种传感器相关的示例代码或教程。这些传感器包括指纹识别、运动传感器(如加...
在iOS中,屏幕亮度的管理主要依赖于`UIScreen`类,该类提供了调整屏幕亮度的方法。例如,`UIScreen`的`brightness`属性可以用来获取或设置屏幕当前的亮度值,这个值范围在0.0(最暗)到1.0(最亮)之间。为了实时...
在iOS开发中,获取设备信息是一项基础且重要的任务。标题提到的“读取设备信息 iOS”主要涉及到如何从iOS设备中获取特定的数据,如UUID(Universally Unique Identifier)和MAC(Media Access Control)地址。这些...
8. **适配策略**:在实际开发中,开发者需要根据UIScreen的属性来实现自适应布局,比如使用Auto Layout和Size Classes,确保UI在不同屏幕尺寸下都能正确显示。 9. **性能优化**:利用UIScreen的信息,可以优化图像...
在iOS应用开发中,Swift语言提供了丰富的框架和API来实现各种功能,其中之一就是手机截图分享。这个功能在很多社交应用中都非常常见,比如新浪微博。在本教程中,我们将深入探讨如何在Swift中实现类似新浪微博的手机...
在iOS应用开发中,有时我们需要根据用户的设备型号来提供特定的功能或者优化用户体验。Swift作为苹果官方推荐的编程语言,提供了方便的方式来获取设备信息。本文将深入探讨如何在Swift中判断iOS设备的型号。 首先,...
在iOS开发中,为了优化用户体验,特别是在涉及到扫描二维码或显示重要内容的场景,我们有时需要临时调整设备的屏幕亮度。这个过程通常包括两个关键步骤:提高屏幕亮度和在适当的时候恢复原始亮度。标题和描述中提到...
首先,iOS提供了一个名为`UIScreen`的类,它代表了设备的屏幕,并提供了调整亮度的接口。要调整屏幕亮度,我们可以使用`UIScreen`的`brightness`属性。这个属性的值范围是0.0(最暗)到1.0(最亮),我们可以根据...
在iOS应用开发中,为按钮配置不同的背景是一个常见的需求,特别是在设计用户界面时,为了提供良好的用户体验,我们可能需要在不同位置放置按钮,并确保它们在各种屏幕尺寸上都能正确显示。本文将详细介绍如何在Swift...
* UIScreen:iOS 中的屏幕类,可以使用 mainScreen: 方法来获取当前屏幕,bounds: 方法来获取屏幕的 bounds。 * UIApplication:iOS 中的应用程序类,可以使用 sharedApplication: 方法来获取当前应用程序,...
在iOS开发中,启动图(Launch Screen)是应用在启动时显示的页面,它能给用户带来良好的第一印象,同时也是应用程序加载过程中的视觉反馈。本文将深入探讨如何在iOS项目中获取并处理系统启动图,以及对其进行小封装...
在Xcode中,启动图片用于旧版的iOS设备,而启动屏幕则是一个Storyboard文件,适用于iOS 8及更高版本,可以动态适应各种屏幕尺寸。当你的应用在不同设备上显示黑边,很可能是由于启动图片或启动屏幕没有正确配置。 ...
在iOS开发中,实现霓虹灯效果是一种常见的视觉特效,可以为用户界面增添动态和吸引人的元素。霓虹灯效果通常涉及到文字或者图形在颜色、亮度上的动态变化,模拟真实的霓虹灯管闪烁效果。本教程将指导你如何在iOS应用...
在iOS开发过程中,宏定义(Macro Definitions)是Objective-C编程中一种常见的技术,它允许开发者在编译时进行代码替换,提高代码的可读性和可维护性。`Macro-master`这个压缩包文件很可能是包含了一些常用的宏定义...
在iOS开发中,工具类是开发者经常会用到的代码模块,它们封装了常见的操作,提高了代码的可复用性和效率。本压缩包中的"SYJToolManager"很可能是一个集成了多种实用工具方法的类别或框架,包括对UIImage、UIScreen、...
在屏幕适配中,我们需要了解 self.view、self.bounds、uiview autosizing、比例【uiscreen mainscreen】bounds.size 等概念。这些概念对于我们开发适配的应用程序非常重要。 IOS 版本兼容与屏幕适配是移动应用开发...
iOS设备有多种屏幕尺寸,包括iPhone SE、iPhone 8/8 Plus、iPhone X系列以及iPad等。你需要确保应用能在所有这些设备上正确显示。使用Size Classes可以为不同设备设置独立的布局,同时在代码中可以通过`UIScreen....