1.自定義loadView
在我們的控制器被創(chuàng)建之后, 就會(huì)自動(dòng)生成一個(gè)方法(ViewDidLoad)
而這個(gè)方法對(duì)應(yīng)的就是loadView, 就是創(chuàng)建View
所以我們每一個(gè)控制器在被創(chuàng)建之后 , 就會(huì)自動(dòng)創(chuàng)建View
而今天我們將要學(xué)就是這個(gè)LoadView方法
首先, 我們先創(chuàng)建一個(gè)繼承自UIView的類(GJView) 在設(shè)置這個(gè)View的控制器
加載控制器View.一但重寫了此方法, 系統(tǒng)就不會(huì)自動(dòng)幫你創(chuàng)建View
1.先去判斷是否從StoryBoard當(dāng)中加載的控制器.如果是
就從Storyboard當(dāng)中創(chuàng)建控制器的View
2.如果不是,再去判斷是否通過xib描述控制器的View, 如果是
那么就從xib當(dāng)中創(chuàng)建控制器的view
3.如果也不是從Xib里面創(chuàng)建
那么系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)空的View.賦值給當(dāng)前控制器的View.
override func loadView() {
let vcView = UIView()
view = vcView
}
注意的我們?cè)趯?shí)現(xiàn)這個(gè)方法之前, 我們的控制器會(huì)自動(dòng)實(shí)現(xiàn)
這個(gè)方法而且會(huì)幫助我們創(chuàng)建View
一旦我們自己實(shí)現(xiàn)這個(gè)方法
系統(tǒng)不會(huì)幫助我們創(chuàng)建View了, 所以這就靠我們自己創(chuàng)建了
而上面的代碼就是依靠我們vcView來創(chuàng)建一個(gè)View
1.當(dāng)控制器一開始展示一個(gè)圖片的時(shí)候.
2.如果是控制器一開始就要展示一個(gè)網(wǎng)頁.
我們就可以在ViewDidLoad方法中寫上這樣代碼:
view.backgroundColor = UIColor.blueColor()
但是大家可以想一想, 如果我們想在在這個(gè)View上設(shè)置一張圖片
我們也可以這樣做, 直接在我們的LoadView將我們的上面的代碼寫在那個(gè)方法里面
2. 系統(tǒng)在設(shè)置控制器的時(shí)候 底層默認(rèn)做法:
判斷下當(dāng)前的控制器是不是從StoryBoard當(dāng)中加載的.
如果是,它就會(huì)StoryBoard加載的控制器View
設(shè)為當(dāng)前控制器的View.
如果不是從StoryBoard當(dāng)中加載的
還會(huì)判斷當(dāng)前是不是從Xib里的View.
如果是Xib,就會(huì)把xib描述的View,設(shè)置當(dāng)前控制器的View.
如果也不是,它就會(huì)創(chuàng)建一個(gè)空的View.
3.系統(tǒng)何時(shí)調(diào)用我們的loadView方法
我們將在這三個(gè)方法中都寫上了關(guān)于背景顏色的改變
我們看看最后, View會(huì)顯示什么樣的顏色
從而判斷, 他的誰是最后一個(gè)調(diào)用
然后, 我們也可以依靠斷點(diǎn)來判斷誰是第幾個(gè)調(diào)用的
總而言之,我們的View是什么時(shí)候使用, 什么時(shí)候創(chuàng)建(就類似與我們以前的數(shù)組的懶加載)
順便提一句
在我們觀察控制器的View的時(shí)候, 總是看不到我們控制器的顏色
但是不要以為我們的控制器View是透明的, 而只是他的背景顏色是透明的
作者說:
很抱歉, 我現(xiàn)在也只是在嘗試著用Swift寫代碼,而且Swift中好多東西,還不懂
還有這個(gè)筆記是利用前面我的OC筆記改的,所以很多方面,很不理想,所以抱歉哈,各位