爲什麼我在蘋果公司(如PhotoScroller)一些示例代碼中看到,我應該做loadView
以下內容:UIScreen界與applicationFrame
CGRect frame = [[UIScreen mainScreen] bounds];
代替
CGRect frame = [[UIScreen mainScreen] applicationFrame];
它使獲得主屏幕的框架有何不同?
爲什麼我在蘋果公司(如PhotoScroller)一些示例代碼中看到,我應該做loadView
以下內容:UIScreen界與applicationFrame
CGRect frame = [[UIScreen mainScreen] bounds];
代替
CGRect frame = [[UIScreen mainScreen] applicationFrame];
它使獲得主屏幕的框架有何不同?
ApplicationFrame是屏幕大小減去狀態欄的大小(如果可見),界限是屏幕大小,與狀態欄無關。
所以applicationFrame將返回CGRectMake(0,0,320,460)
假設你的應用程序有狀態欄設置爲可見,而邊界將在同等條件下返回CGRectMake(0,0,320,480)
。這些數字都假設iPhone/iPod Touch的屏幕尺寸。
的iOS 9更新
當使用iPad上的拆分視圖功能,applicationFrame
返回您的應用程序窗口的大小。 bounds
總是返回設備的大小。
'-applicationFrame'在iOS 9中**棄用** – 2016-09-27 00:21:03
我可能會誤會,但不會applicationFrame返回CGRectMake(0,20,320,460)?其中20是狀態欄的偏移量... – 2011-12-06 13:51:16
你沒錯,Niels :)。 y偏移量將被報告爲20,狀態欄不爲0. – Nate 2012-05-08 01:25:15
Hi @jamone,如果顯示Personal Hotspot,該怎麼辦?它似乎需要20點高(與狀態欄相同)。 applicationFrame會在4英寸的3.5英寸iPhone和CGRectMake(0,40,320,528)上返回CGRectMake(0,40,320,440)嗎? – Cong 2013-11-11 04:10:15