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

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

你可能感兴趣的:(IOS获取屏幕宽高的几种方式对比)