如何在 iOS 中获取屏幕的尺寸?
目前,我使用:
lCurrentWidth = self.view.frame.size.width; lCurrentHeight = self.view.frame.size.height;
在viewWillAppear:和willAnimateRotationToInterfaceOrientation:duration:
viewWillAppear:
willAnimateRotationToInterfaceOrientation:duration:
我第一次获得整个屏幕尺寸。我第二次得到屏幕减去导航栏。
您发布的代码的问题是您指望视图大小与屏幕大小相匹配,而且正如您所见,情况并非总是如此。如果您需要屏幕尺寸,您应该查看代表屏幕本身的对象,如下所示:
CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat screenWidth = screenRect.size.width; CGFloat screenHeight = screenRect.size.height;
拆分视图更新: 在评论中,德米特里问:
如何在拆分视图中获取屏幕大小?
上面给出的代码报告屏幕的大小,即使在分屏模式下也是如此。当您使用分屏模式时,您的应用程序的窗口会发生变化。如果上面的代码没有为您提供您期望的信息,那么就像 OP 一样,您正在查看错误的对象。但是,在这种情况下,您应该查看窗口而不是屏幕,如下所示:
CGRect windowRect = self.view.window.frame; CGFloat windowWidth = windowRect.size.width; CGFloat windowHeight = windowRect.size.height;
let screenRect = UIScreen.main.bounds let screenWidth = screenRect.size.width let screenHeight = screenRect.size.height // split screen let windowRect = self.view.window?.frame let windowWidth = windowRect?.size.width let windowHeight = windowRect?.size.height