亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 1559 0

?

init方法

?

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

?init方法中初始化ViewController本身

?

loadView方法

?

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

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

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

loadView和IB構建view

?

viewDidLoad方法

?

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

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

viewDidLoad后調用數據Model

?

viewDidUnload方法?

?

當系統內存吃緊的時候會調用該方法(注:viewController沒有被dealloc)

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

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

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

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

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

?

?

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

viewDidUnload在收到內存警告的時候調用,在我的理解,這個方法里面應該做幾件事情:

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

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

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

?

dealloc方法

?

viewDidUnload和dealloc方法沒有關聯,dealloc還是繼續做它該做的事情

?

流程:

?

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

?

?

?

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

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

?

視圖架構?

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

?

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

?

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


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


?

?

?

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 九九九影院 | 色偷偷91综合久久噜噜 | 午夜一级毛片免费视频 | 亚洲欧美日韩专区 | 国产欧美精品一区二区 | 亚洲欧美在线精品一区二区 | 中文日韩字幕 | 久久综合中文字幕 | 日产国语一区二区三区在线看 | 一级片视频免费看 | 一级片手机在线观看 | 亚洲四虎| 狠狠狠色丁香婷婷综合久久88 | 在线观看亚洲精品国产 | 中文字幕国产在线 | 国产高清精品久久久久久久 | 四虎成人永久地址 | 香蕉爱视频 | 欧美亚洲另类久久综合 | 青青青国产在线 | 久久久夜色精品国产噜噜 | 在线播放五十路乱中文 | 最新中文字幕日本 | 婷婷国产天堂久久综合五月 | 日韩欧美网站 | 日本一本一区二区 | 999yy成年在线视频免费看 | 精品视频一区二区三区在线播放 | 最新中文字幕一区 | 国产成人精品曰本亚洲77美色 | 在线视频久草 | 5566中文字幕亚洲精品 | 亚洲精品乱码久久久久久麻豆 | 国产成人8x视频一区二区 | 9966久久精品免费看国产 | 亚洲综合精品成人啪啪 | 国产91精品一区二区麻豆网站 | 久热亚洲| 亚洲视频1 | 日韩一级欧美一级一级国产 | 国产一区二区三区乱码网站 |