View是用戶交互的重中之重,因此也承載了不少的功能:
在佈局和姿式圖管理上:
管理自身的大小和父視圖的關係,這是對上的
管理一系列的子視圖,這是對下的
覆蓋子視圖的大小和位置
定位系統和最上面的window的點的轉化app
在渲染和動畫的層面來講,View承載的功能主要是
渲染區域內的內容
更新本身的屬性達到動畫效果框架
事件處理也是View的一大功能
接收觸摸事件
參與響應鏈條的工做
Q:這兩個功能貌似緊密相關,接收時間,而後處理。ide
View的職責很明顯是MVC中的V,管理建立,渲染可見的部分,處理佈局和管理視圖層次框架。還有內部的事件處理就在另外一個文檔中Event handling guide for iOS,以後就會去看。佈局
如何建立和配置視圖對象?
簡單說,兩步走,先建立試圖對象(這裏有兩種方式,代碼建立和IB建立),而後整合進視圖層次中來使用。動畫
那麼如何使用IB建立視圖對象?
控件拖拖拖,而後對應一個View Controller。ui
代碼如何建立視圖對象呢?
先建立對象(分配內存和初始化),以後做爲子視圖添加對象
apple自己開放了一些屬性來定製視圖的外觀,好比背景色,透明度,位置大小,內容模式。事件
建立和管理視圖層次內存
實現一個自定義的View須要作哪些事情?
1. 定義一些合適的初始化方法
代碼建立view,覆蓋initwithFrame方法來自定義本身的初始化方法
從nib文件加載視圖,覆蓋initWithCoder方法,是因這個方法來初始化你的視圖
2. 實現dealloc放啊來執行自定義數據的清理工做
3. 處理渲染,覆蓋drawRect方法
4. 設置autoresizing屬性來定義自動大小的行爲
5. 若是說視圖還有子視圖的話,
在視圖初始化過程當中建立子視圖
在建立的時候這是autoresizingmask屬性
若是子視圖須要自定義佈局,覆蓋layoutSubviews方法和實現你的自動佈局代碼
6. 處理基於觸摸的時間
添加手勢管理:addGestureRecognizer
本身來處理觸摸事件,就須要覆蓋幾個方法
touchesBegan:withEvent:
touchesMoved:withEvent:
touchesCancelled:withEvent:
touchesEnded:withEvent:
7. 也能夠覆蓋打印版本的方法,是的和屏幕顯示的方法不一樣文檔