問題

如何在iOS中獲取螢幕的維度?

目前,我使用:

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

viewWillAppear:willAnimateRotationToInterfaceOrientation:duration:

第一次我得到整個螢幕大小.第二次我得到螢幕減去導航欄.

  最佳答案

如何在iOS中獲取螢幕的維度?

您釋出的程式碼的問題是您計算的檢視大小與螢幕的大小相匹配,正如您已經看到的那樣,情況並非總是如此.如果您需要螢幕大小,您應該查看錶示螢幕本身的物件,如下所示:

 CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
 

更新分割檢視:在評論中,Dmitry問:

如何在分割檢視中獲取螢幕的大小?

上面給出的程式碼報告螢幕的大小,即使在分割螢幕模式下.當您使用分割螢幕模式時,您的應用程式的視窗會發生變化.如果上面的程式碼沒有給您預期的資訊,那麼就像OP一樣,您正在檢視錯誤的物件.在這種情況下,您應該檢視視窗而不是螢幕,如下所示:

 CGRect windowRect = self.view.window.frame;
CGFloat windowWidth = windowRect.size.width;
CGFloat windowHeight = windowRect.size.height;
 

Swift 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
 

  相同標籤的其他問題

cocoa-touchiosuikitscreen