1、視圖:
#螢幕上表示某一個矩形區域;某個視圖隻能有一個父視圖,但是可能有多個子視圖;
#UIWindow:螢幕視圖,在整個視圖結構體系的最上層,僅适用于ios應用;
#添加視圖的函數:
- (void)addSubview:(UIView *)aView;
- (void)removeFromSuperview;
#在MVC結構中,視圖結構體系最上層的是屬性@property view;
#初始化UIView:awakeFromNib函數,或{[UIView alloc] init];
#視圖的坐标體系:參見另一篇博文http://blog.sina.com.cn/s/blog_520811730101mixf.html;在坐标體系中的以點而不是像素為機關;
@property CGFloat contentScaleFactor傳回每個點所包含的的像素數目;
#建立視圖:在nib檔案中拖入視圖對象,并修改其class屬性;或通過代碼建立(alloc, init);
#自定義視圖:建立一個類繼承自UIView,重寫下面的方法:
該函數為系統調用,不應由手動調用;若需要更新視圖内容,則調用下列函數:
以上兩個函數将負責調用drawRect。
實作drawRect:直接調用Core Graphics Framework(此為C語言API集合),或者使用UIBezierPath類;
#使用UIBezierPath繪圖:
(1)定義一個path:
(2)移動起點,向終點繪制:
(3)關閉path:
(4)設定繪圖屬性:
在實際使用中可以在設定前後分别調用以下方法,則可以去除方法與繪圖上下文的互相影響:
(5)設定線寬等屬性;詳見UIBezierPath的文檔;
(6)clip方法:
#UIView的透明度:幾個影響透明度的因素:顔色UIColor的alpha值;UIView的backgroundColor屬性;@property BOOL opaque(若設定透明度,則該屬性必須設為NO);
可以設定@property (nonatomic) BOOL hidden屬性将視圖隐藏;
#繪制文本:
容器——UILable;drawRect中繪制文本可采用NSAttributedString。[test drawAtPoint:point];
文本所占大小:CGSize textSize = [text size];
#繪制圖像:
容器——UIIMageView;
來源:可使用工程資源目錄下的圖像、給定url辨別的圖像或者有CGContext函數繪制;
#在視圖邊界改變的時候:
預設情況下不進行重新繪制,而是對内容進行拉伸、壓縮或者移動;可以設定@property (nonatomic) UIViewContentMode contentMode進行設定;
2、手勢識别器UIGestureRecognizer:這個類是個抽象類,必須派生才可執行個體化;使用時将gesture recognizer添加到視圖(通常由view controller完成),并且實作handle方法處理手勢操作(由UIView自身提供);
UIGestureRecognizer提供三個方法實作手勢識别器同其target的聯系:
該類提供屬性@property (readonly) UIGestureRecognizerState state說明識别器的狀态,可能值有Possible/Recognized/Began/Failed/Changed/Ended/Cancelled等