欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

UIView的一些基本方法 init、loadView、viewDid

系統(tǒng) 1624 0

?

init方法

?

在init方法中實例化必要的對象(遵從LazyLoad思想)

?init方法中初始化ViewController本身

?

loadView方法

?

當view需要被展示而它卻是nil時,viewController會調(diào)用該方法。不要直接調(diào)用該方法。

如果手工維護views,必須重載重寫該方法

如果使用IB維護views,必須不能重載重寫該方法

loadView和IB構(gòu)建view

?

viewDidLoad方法

?

重載重寫該方法以進一步定制view

在iPhone OS 3.0及之后的版本中,還應(yīng)該重載重寫viewDidUnload來釋放對view的任何索引

viewDidLoad后調(diào)用數(shù)據(jù)Model

?

viewDidUnload方法?

?

當系統(tǒng)內(nèi)存吃緊的時候會調(diào)用該方法(注:viewController沒有被dealloc)

內(nèi)存吃緊時,在iPhone OS 3.0之前didReceiveMemoryWarning是釋放無用內(nèi)存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式

在該方法中將所有IBOutlet(無論是property還是實例變量)置為nil(系統(tǒng)release view時已經(jīng)將其release掉了)

在該方法中釋放其他與view有關(guān)的對象、其他在運行時創(chuàng)建(但非系統(tǒng)必須)的對象、在viewDidLoad中被創(chuàng)建的對象、緩存數(shù)據(jù)等 release對象后,將對象置為nil(IBOutlet只需要將其置為nil,系統(tǒng)release view時已經(jīng)將其release掉了)

一般認為viewDidUnload是viewDidLoad的鏡像,因為當view被重新請求時,viewDidLoad還會重新被執(zhí)行

viewDidUnload中被release的對象必須是很容易被重新創(chuàng)建的對象(比如在viewDidLoad或其他方法中創(chuàng)建的對象),不要release用戶數(shù)據(jù)或其他很難被重新創(chuàng)建的對象

?

?

viewDidLoad總是在loadView之后調(diào)用,不管你是不是通過nib文件創(chuàng)建的,這個方法總是會被調(diào)用的。

viewDidUnload在收到內(nèi)存警告的時候調(diào)用,在我的理解,這個方法里面應(yīng)該做幾件事情:

1、釋放掉一些比較容易創(chuàng)建的對象,或者是一些比較占資源的對象(圖片、音頻等)

2、如果界面控件自己保持了引用計數(shù),這里也要釋放掉。(比如說,這個控件被設(shè)成了屬性,而且是retain的,這個retain的引用計數(shù)就必須釋放掉)

3、如果跨類的參數(shù)傳遞機制會在viewDidUnload以后產(chǎn)生不正常的效果,這里也必須處理。

?

dealloc方法

?

viewDidUnload和dealloc方法沒有關(guān)聯(lián),dealloc還是繼續(xù)做它該做的事情

?

流程:

?

(loadView/nib文件)來加載view到內(nèi)存 ——>viewDidLoad函數(shù)進一步初始化這些view ——>內(nèi)存不足時,調(diào)用viewDidUnload函數(shù)釋放views?—->當需要使用view時有回到第一步, 如此循環(huán)。

?

?

?

在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone開發(fā)里具有非常重要的作用。 視圖和窗口展示了應(yīng)用的用戶界面,同時負責界面的交互。UIKit和其他系統(tǒng)框架提供了很多視圖,你可以就地使用而幾乎不需要修改。當你需要展示的內(nèi)容與標準視圖允許的有很大的差別時,你也可以定義自己的視圖。

不管你是使用系統(tǒng)的視圖還是創(chuàng)建自己的視圖,你需要理解UIView和UIWindow類所提供的基本結(jié)構(gòu)。這些類提供了復雜的方法來管理視圖的布局和展示。理解這些方法的工作非常重要,使你在應(yīng)用發(fā)生改變時可以確認視圖有合適的行為。

?

視圖架構(gòu)?

大部分你想要可視化操作都是由視圖對象-即UIView類的實例-來進行的。一個視圖對象定義了一個屏幕上的一個矩形區(qū)域,同時處理該區(qū)域的繪制和觸屏事件。一個視圖也可以作為其他視圖的父視圖,同時決定著這些子視圖的位置和大小。UIView類做了大量的工作去管理這些內(nèi)部視圖的關(guān)系,但是需要的時候你也可以定制默認的行為。

?

視圖與層聯(lián)合起來處理著視圖內(nèi)容的解釋和動畫過渡。每個UIKit框架里的視圖都被一個層對象支持(通常是一個CALayer類的實例),它管理管理著后臺的視圖存儲和處理視圖相關(guān)的動畫。然而,當你需要對視圖的解釋和動畫行為有更多的控制權(quán)時,你可以使用層。

?

為了理解視圖和層之間的關(guān)系,我們可以借助于一些例子。應(yīng)用中的視圖包括了一個window(同時也是一個視圖),一個通用的表現(xiàn)得像一個容器視圖的UIView對象,一個圖像視圖,一個控制顯示用的工具條,和一個工具條按鈕(它本身不是一個視圖但是在內(nèi)部管理著一個視圖)。(注意這個應(yīng)用包含了一個額外的圖像視圖,它是用來實現(xiàn)動畫的)。為了簡化,同時因為這個視圖通常是被隱藏的,所以沒把它包含在下面的圖中。每個視圖都有一個相應(yīng)的層對象,它可以通過視圖礶r屬性被訪問。(因為工具條按鈕不是一個視圖,你不能直接訪問它的層對象。)


圖片:視圖和層之間的關(guān)系.jpg?
UIView的一些基本方法 init、loadView、viewDidLoad、viewDidUnload、dealloc


?

?

?

UIView的一些基本方法 init、loadView、viewDidLoad、viewDidUnload、dealloc


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美在线视频一区二区三区 | 国产高清免费视频 | av一区二区在线观看 | 三级国产短视频在线观看 | 久久久久免费 | 国产精品偷拍 | 91网在线观看 | 成人午夜亚洲影视在线观看 | 高清中文字幕免费观在线 | 日本中文字幕在线观看 | 日本精品久久久久久久 | 三级精品在线观看 | 精品国产乱码久久久久久丨区2区 | 免费的一级毛片 | 久久精品久久久久 | 性欧美久久 | 欧美搞黄视频 | 亚洲毛片在线观看 | 国产成人a亚洲精品 | 欧美福利 | 欧美a级片视频 | 日韩视频在线观看免费视频 | 欧美日韩成人影院 | 亚洲国产精品久久网午夜 | 久久精品欧美一区 | 97超级碰碰碰在线播放 | 四虎影在线永久免费四虎地址8848aa | 日本三级韩国三级香港三级 | 第一次破處在线国语视频播放 | 日韩亚洲视频 | 日本精品久久久久中文字幕2 | 国产精品一区av | 99je全部都是精品视频在线 | 欧美日韩国产综合网 | 欧美不卡一区二区三区在线观看 | 都市妖奇谈 电视剧 | 狠狠操电影 | 成人福利在线视频 | 国产精品字幕 | 久草高清视频 | av日韩在线免费观看 |