小编典典

如何在 iOS 中获取屏幕宽度和高度?

all

如何在 iOS 中获取屏幕的尺寸?

目前,我使用:

lCurrentWidth = self.view.frame.size.width;
lCurrentHeight = self.view.frame.size.height;

viewWillAppear:willAnimateRotationToInterfaceOrientation:duration:

我第一次获得整个屏幕尺寸。我第二次得到屏幕减去导航栏。


阅读 98

收藏
2022-03-10

共1个答案

小编典典

如何在 iOS 中获取屏幕的尺寸?

您发布的代码的问题是您指望视图大小与屏幕大小相匹配,而且正如您所见,情况并非总是如此。如果您需要屏幕尺寸,您应该查看代表屏幕本身的对象,如下所示:

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;

斯威夫特 4.2

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
2022-03-10