1,UIScreen一般也只是用來(lái)獲取屏幕大小
CGrect screenBounds = [[UIScreen mainScreen] bounds];//返回的是帶有狀態(tài)欄的Rect (0.0,0.0,320.0,480.0)
CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];//不包含狀態(tài)欄的Rect(0.0,20.0,320.0,480.0)
一、UIWindow是一種特殊的UIView,通常在一個(gè)程序中只會(huì)有一個(gè)UIWindow待榔,但可以手動(dòng)創(chuàng)建多個(gè)UIWindow,同時(shí)加到程序里面在岂。UIWindow在程序中主要起到三個(gè)作用:
1、作為容器蛮寂,包含app所要顯示的所有視圖
2蔽午、傳遞觸摸消息到程序中view和其他對(duì)象
3、與UIViewController協(xié)同工作酬蹋,方便完成設(shè)備方向旋轉(zhuǎn)的支持
二及老、通常我們可以采取兩種方法將view添加到UIWindow中:
1、addSubview
直接將view通過(guò)addSubview方式添加到window中除嘹,程序負(fù)責(zé)維護(hù)view的生命周期以及刷新写半,但是并不會(huì)為去理會(huì)view對(duì)應(yīng)的ViewController,因此采用這種方法將view添加到window以后尉咕,我們還要保持view對(duì)應(yīng)的ViewController的有效性叠蝇,不能過(guò)早釋放。
2年缎、rootViewController
rootViewController時(shí)UIWindow的一個(gè)遍歷方法悔捶,通過(guò)設(shè)置該屬性為要添加view對(duì)應(yīng)的ViewController,UIWindow將會(huì)自動(dòng)將其view添加到當(dāng)前window中单芜,同時(shí)負(fù)責(zé)ViewController和view的生命周期的維護(hù)蜕该,防止其過(guò)早釋放