`
stephen830
  • 浏览: 3010240 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UIScreen学习记录

 
阅读更多

 

UIScreen学习记录

转载自 http://blog.csdn.net/fww330666557/article/details/11918539

UIScreen object contains the bounding rectangle of the device’s entire screen. When setting up your application’s user interface, you should use the properties of this object to get the recommended frame rectangles for your application’s window.

UIScreen对象包含了整个屏幕的边界矩形。当构造应用的用户界面接口时,你应该使用该对象的属性来获得推荐的矩形大小,用以构造你的程序窗口。

以下列出的属性和操作是我用过的。

 
+ mainScreen        Returns the screen object representing the device’s screen.

bounds  property    Contains the bounding rectangle of the screen, measured in points. (read-only)
applicationFrame  property  The frame rectangle for the app window. (read-only)
scale  property   The natural scale factor associated with the screen. (read-only)
CGRect bound = [[UIScreen mainScreen] bounds];  // 返回的是带有状态栏的Rect
CGRect frame = [[UIScreen mainScreen] applicationFrame];  // 返回的是不带有状态栏的Rect
float scale = [[UIScreen mainScreen] scale]; // 得到设备的自然分辨率
 备注:状态栏高度为20
 

 
根据不同设备获取到的参数数据:
 1. iphone 6s plus
//设备类型
    NSString* deviceType = @"iphone 6s plus";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
 输出结果:
[iphone 6s plus] mainScreen.bounds:{{0, 0}, {414, 736}}
 [iphone 6s plus] mainScreen.applicationFrame:{{0, 20}, {414, 716}}
 [iphone 6s plus] mainScreen.scale:3.000000
 [iphone 6s plus] mainScreen.brightness:0.500000
 
 2. iphone 6s
//设备类型
    NSString* deviceType = @"iphone 6s";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
  输出结果:
 [iphone 6s] mainScreen.bounds:{{0, 0}, {375, 667}}
 [iphone 6s] mainScreen.applicationFrame:{{0, 20}, {375, 647}}
 [iphone 6s] mainScreen.scale:2.000000
 [iphone 6s] mainScreen.brightness:0.500000
 
 3. iphone 6 plus
    //设备类型
    NSString* deviceType = @"iphone 6 plus";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
   输出结果:
 [iphone 6 plus] mainScreen.bounds:{{0, 0}, {414, 736}}
 [iphone 6 plus] mainScreen.applicationFrame:{{0, 20}, {414, 716}}
 [iphone 6 plus] mainScreen.scale:3.000000
 [iphone 6 plus] mainScreen.brightness:0.500000
  4. iphone 6
    //设备类型
    NSString* deviceType = @"iphone 6";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
 输出:
 [iphone 6] mainScreen.bounds:{{0, 0}, {375, 667}}
 [iphone 6] mainScreen.applicationFrame:{{0, 20}, {375, 647}}
 [iphone 6] mainScreen.scale:2.000000
 [iphone 6] mainScreen.brightness:0.500000
 
  5. iphone 5s
    //设备类型
    NSString* deviceType = @"iphone 5s";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
   输出:
 [iphone 5s] mainScreen.bounds:{{0, 0}, {320, 568}}
 [iphone 5s] mainScreen.applicationFrame:{{0, 20}, {320, 548}}
 [iphone 5s] mainScreen.scale:2.000000
 [iphone 5s] mainScreen.brightness:0.500000
   6. iphone 5
    //设备类型
    NSString* deviceType = @"iphone 5";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
 输出:
 [iphone 5] mainScreen.bounds:{{0, 0}, {320, 568}}
 [iphone 5] mainScreen.applicationFrame:{{0, 20}, {320, 548}}
 [iphone 5] mainScreen.scale:2.000000
 [iphone 5] mainScreen.brightness:0.500000
    7. iphone 4s
    //设备类型
    NSString* deviceType = @"iphone 4s";
    //显示分辨率
    UIScreen* mainScreen = [UIScreen mainScreen];
    //bounds:只读属性,返回整个屏幕的rect (包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.bounds:%@",deviceType,NSStringFromCGRect(mainScreen.bounds));
    //applicationFrame:只读属性,返回状态栏之下的屏幕的rect (不包含顶部的状态栏)
    NSLog(@"[%@] mainScreen.applicationFrame:%@",deviceType,NSStringFromCGRect(mainScreen.applicationFrame));
    //设备的分辨率:只读属性
    NSLog(@"[%@] mainScreen.scale:%f",deviceType,mainScreen.scale);
    //屏幕亮度:取值范围为0-1.0
    NSLog(@"[%@] mainScreen.brightness:%f",deviceType,mainScreen.brightness);
 输出:
 [iphone 4s] mainScreen.bounds:{{0, 0}, {320, 480}}
 [iphone 4s] mainScreen.applicationFrame:{{0, 20}, {320, 460}}
 [iphone 4s] mainScreen.scale:2.000000
 [iphone 4s] mainScreen.brightness:0.500000
 
 
 
 
 
 

 

  • 大小: 158.8 KB
分享到:
评论

相关推荐

    ios8中的UIScreen

    在iOS开发中,UIScreen是Apple提供的一个非常重要的类,它代表了设备的屏幕。在iOS 8中,UIScreen不仅提供了屏幕的基本属性,如分辨率、尺寸和亮度,还新增了一些功能来适应新的系统特性。这篇博客文章...

    Swift屏幕亮度调整

    首先,我们需要引入UIKit框架,因为屏幕亮度的控制涉及到UIApplication和UIScreen类。在Swift文件顶部添加以下导入语句: ```swift import UIKit ``` 接下来,我们可以使用UIScreen的`brightness`属性来获取和设置...

    ios 学习笔记

    本文档基于给定的“iOS学习笔记”,深入探讨iOS应用程序生命周期的关键概念、阶段以及如何处理这些阶段。 #### 二、基础知识 **1.1 入口点:** iOS应用的入口点位于`main.m`文件中的`main`函数。此函数通过调用`...

    ios - A-常用宏定义

    #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height) //-------------------获取设备大小----判断5--------------------- #define...

    iphone 开发简单介绍ppt

    通过上述内容的学习,我们了解到在iPhone开发过程中,`UIScreen`、`CGRect`、`CGPoint`和`CGSize`这几个类或结构体的重要性。它们不仅能够帮助我们更好地理解设备的基本信息,还能够指导我们在开发过程中做出正确的...

    iOS伪亮度控制demo

    总之,“iOS伪亮度控制demo”是一个实用的学习资源,它涵盖了如何使用`UIScreen`类进行真实亮度控制,以及如何通过模拟方法达到类似效果的知识点。无论是初学者还是经验丰富的开发者,都可以从中受益,提升自己在iOS...

    Swift-控制屏幕是否自动熄屏

    首先,我们需要了解iOS中与屏幕控制相关的两个主要类:`UIApplication`和`UIScreen`。`UIApplication`是整个应用程序的顶级对象,它提供了一些系统级别的服务,包括控制屏幕的亮暗和自动锁定。而`UIScreen`代表设备...

    swift-ScreenBrightness轻松监控设备屏幕亮度实现不同操作

    在iOS和macOS平台上,我们可以利用Core Graphics框架中的`UIScreen`类来获取屏幕亮度信息。`UIScreen`类提供了一个名为`brightness`的属性,这个属性是一个浮点数,范围在0.0(全黑)到1.0(全亮)之间。以下是如何...

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

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

    ios-酷炫重力感应imageView.zip

    YGGravityImageView *imageView = [[YGGravityImageView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)]; imageView.image = ...

    iOS 截屏程序

    苹果在UIKit框架中提供了两个主要的类,`UIApplication`和`UIScreen`,它们提供了截屏的功能。`UIApplication`可以获取整个屏幕的截图,而`UIScreen`则可以用于获取单个屏幕或特定显示器的截图。 1. 使用`...

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

    } else if UIScreen.main.bounds.size.width == 414 && UIScreen.main.bounds.size.height == 736 { // iPhone 6/7/8 Plus, iPhone XR } else if UIScreen.main.bounds.size.width == 390 && UIScreen.main....

    iOS页面亮度调整

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

    IOS UI 笔记

    本笔记涵盖了iOS开发中UI部分的基础知识,包括如何使用Xcode创建新的UI项目、如何管理和操作`UIWindow`和`UIView`,以及如何设置视图的基本属性。这些知识对于iOS开发者来说非常重要,是构建任何iOS应用的基础。理解...

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

    本压缩包中的"SYJToolManager"很可能是一个集成了多种实用工具方法的类别或框架,包括对UIImage、UIScreen、UIView和NSString的扩展。接下来,我们将深入探讨这些关键类别的工具类知识点。 首先,UIImage工具类通常...

    UI第三章:视图控制器的基本概念和用法.pdf

    最后,UIWindow是负责在屏幕上显示内容的窗口对象,它位于屏幕(UIScreen)之上,负责接收触摸事件并将内容绘制到屏幕上。而UIScreen对象代表设备的物理屏幕。 学习和掌握UIViewController的基本概念和用法,是成为...

    swift-仿支付宝二维码页面多线程逐步调整屏幕亮度。

    在Swift编程中,仿支付宝二维码页面的实现涉及到了多个关键知识点,其中包括用户界面设计、多线程处理以及屏幕亮度的动态调节。...同时,理解和学习这样的项目源码,对于提升Swift开发能力大有裨益。

    iphone开发笔记

    8. 全屏显示:创建窗口时,设置其frame为屏幕的bounds,如`window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];`。 9. 自动适应大小:设置视图的`autoresizingSubviews`和`...

    iOS录屏和截屏监听的实现代码

    当使用UIScreen的isCaptured属性返回true时,表示屏幕当前正在被录制、镜像或者通过AirPlay发送。开发者可以利用这一特性,在应用中对录屏行为做出相应的处理,比如同样弹出安全提醒的警告框。 实现监听录屏状态的...

Global site tag (gtag.js) - Google Analytics