1. 什麼是視圖?
視圖顯示為手機上的一塊矩形區域,管理該區域的所有螢幕顯示,它是UIView或者UIView的子類。
視圖既可以從xib生成,也可以用代碼生成。
2. 視窗
視窗是UIWindow或者它的子類。
視圖結構的頂層便是app的視窗。
視窗必須充滿裝置的螢幕,是以,必須設定視窗的frame為螢幕的bounds。
(稍後我會講解frame和bounds的差別)
代碼如下:
Objective-C
Swift(iOS 8)
iOS9以後代碼明顯簡化了,系統會預設将螢幕的bounds賦給視窗的frame
Swift(iOS 9)
視窗在app的整個生命周期中存在,為了達到這個目的,app的delegate class有一個強引用(strong retain)的屬性叫做window,它永遠不會被釋放。
如何切換自定義的主視圖?
通常的做法是我們把自定義的視圖控制器賦給視窗的rootViewController屬性。
最後再通過makeKeyAndVisible方法使視圖可見。