iOS - UIWindow

前言

    NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWindow : UIView
    @available(iOS 2.0, *)       public class UIWindow : UIView

1、Window 的创建

  • Objective-C

        // 声明窗口视图
        @property (strong, nonatomic) UIWindow *window; 
    
        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
            // 实例化窗口视图,window 的大小和当前手机屏幕一样大
            self.window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen].bounds];   
    
            // 设置 window 的背景颜色
            self.window.backgroundColor = [UIColor whiteColor];  
    
            // 将窗口显示到屏幕上
            [self.window makeKeyAndVisible];
    
            return YES;
        }
  • Swift

        // 声明窗口视图
        var window: UIWindow?
    
        func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
            // 实例化窗口视图,window 的大小和当前手机屏幕一样大
            self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    
            // 设置 window 的背景颜色
            self.window?.backgroundColor = UIColor.whiteColor()
    
            // 将窗口显示到屏幕上 
            self.window?.makeKeyAndVisible()
    
            return true
        }

2、UIScreen 的使用

  • UIScreen 的属性

        // 带有状态栏的 Rect 
        CGRect bound = [UIScreen mainScreen].bounds;
    
        // 不带有状态栏的 Rect 
        CGRect frame = [UIScreen mainScreen].applicationFrame;
    
        // 设备的自然分辨率
        float scale = [UIScreen mainScreen].scale;
  • scale 属性的进一步的说明:

    • 以前的 iPhone 设备屏幕分辨率都是 320x480,后来 apple 在 iPhone 4 中采用了名为 Retina 的显示技术,iPhone 4 采用了 960x640 像素分辨率的显示屏幕。由于屏幕大小没有变,还是 3.5 英寸,分辨率的提升将 iPhone 4 的显示分辨率提升至 iPhone 3GS 的四倍,每英寸的面积里有 326 个像素。

    • 简单的理解 scale 就是一个点有几个像素。scale 属性的值目前有 3 个:
      • scale = 1.0; iPhone 4 之前的设备
      • scale = 2.0; iPhone 4 ~ iPhone 7 (除 plus 外) 的设备
      • scale = 3.0; iPhone 6 plus 和 iPhone 7 plus 的设备

3、获取屏幕宽度与高度

  • 不同型号的 iOS 设备的屏幕尺寸:

    UIWindow1

  • Objective-C

        // 当前屏幕的宽度
        CGFloat width =  [UIScreen mainScreen].bounds.size.width;
    
        // 当前屏幕的高度      
        CGFloat height = [UIScreen mainScreen].bounds.size.height; 
  • Swift

        // 当前屏幕的宽度
        let width:CGFloat = UIScreen.mainScreen().bounds.size.width
    
        // 当前屏幕的高度
        let height:CGFloat = UIScreen.mainScreen().bounds.size.height
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/312260

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。