IOS获取屏幕宽高的几种方式对比

获取屏幕宽高

  1. [[[UIApplication sharedApplication] keyWindow] bounds]
  2. [[[[UIApplication sharedApplication] delegate] window] bounds]
  3. [[UIScreen mainScreen] bounds]

分析

  • 正常情况下,如果在项目启动后使用,随便哪一种结果都是一样的。
    特殊情况在于APP启动的时候,keyWindow不是一开始就有的。
    如果我们在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    这个方法内直接调用keyWindow,答案是nil。
    需要执行下面这行后才加载keyWindow
    [self.window makeKeyAndVisible];
  • 如果我们未设置启动视图Launch那么后面两种方式也是有误差的,系统会默认分配320,568大小的bounds。当然了不同版本系统上可能会有不同。比如:320,480

总结:推荐使用后面两种方式获取宽高

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容