IOS UIView 之屬性篇

從我一開始學IOS開始就一直在操縱各種視圖,例如Button、label、TextFiled...
它們所有都繼承與 UIView ,今天我就想來了解一下這個幾乎是所有視圖的父類。
由於這個類的文檔有134頁之多,所以我會分成幾次把它寫完

UIView 繼承於UIResponder 
            所遵守的協議有 NSCoding 、UIAppearance、 UIAppearanceContainer 
                                      UIDynamicItem、 NSObject
從繼承的類我們就可以看出 UIView 這個類可以響應手勢

那麼我們就從它的屬性開始這一旅程吧

UIView 之屬性篇  Properties


@property(nonatomic) CGFloat alpha   //設置視圖的透明度
//透明度的設置從最小0.0到1.0 ,1.0爲完全不透明,
//其中這個屬性隻影響當前視圖,並不會影響其子視圖
@property(nonatomic, getter=isOpaque) BOOL opaque
//決定當前視圖是否是透明的

@property(nonatomic) BOOL autoresizesSubviews
//這個屬性是決定當視圖大小邊界發生改變時,其子視圖是否也跟着自動調整大小

@property(nonatomic) UIViewAutoresizing autoresizingMask
//決定當當前視圖的父視圖大小發生變化時,當前視圖該怎麼調整自己的size

@property(nonatomic, copy) UIColor *backgroundColor  //當前視圖的背景色

@property(nonatomic) CGRect bounds  
//當前視圖的邊界,包括大小和原點,這裏是在系統座標系下
@property(nonatomic) CGRect frame
//當前視圖的邊界,包括大小和原點,這裏是在父視圖的座標系下
@property(nonatomic) CGPoint center  //當前視圖的中心,並指定是在父視圖的座標系下

@property(nonatomic) BOOL clearsContextBeforeDrawing  
//決定在視圖重畫之前是否先清理視圖以前的內容,缺省值爲YES
//如果你把這個屬性設爲NO,那麼你要保證能在 drawRect:方法中正確的繪畫。如果你的代碼
//已經做了大量優化,那麼設爲NO可以提高性能,尤其是在滾動時可能只需要重新繪畫視圖的一部分

@property(nonatomic) BOOL clipsToBounds  
//決定子視圖是否被限定在當前視圖的bounds中,缺省值爲NO

@property(nonatomic) UIViewContentMode contentMode
//決定當視圖邊界變時呈現視圖內容的方式

@property(nonatomic) CGFloat contentScaleFactor
//應用到當前視圖的比例Scale

@property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch
//決定當前視圖是否是處理觸摸事件的唯一對象

@property(nonatomic, copy) NSArray *gestureRecognizers
//當前視圖所附加的手勢識別器

@property(nonatomic, getter=isHidden) BOOL hidden
//當前視圖是否隱藏

@property(nonatomic, readonly, retain) CALayer *layer
//用於視圖渲染的核心動畫層

@property(copy, nonatomic) NSArray *motionEffects
//當前視圖的運動效果,IOS7纔開始擁有

@property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled
//當前視圖是否接受多點觸控事件,缺省值爲NO

@property(nonatomic, copy) NSString *restorationIdentifier
//該標示符決定該視圖是否支持恢復狀態,其實也只是個標示符而已
//個人覺得就相當於配置表視圖每個單元格時使用的標示符一樣,可以直接在內存中重用,提高了性能
//還有一點需注意,不應該簡單的定義這個標示符,因爲其所屬的view controller ,還有view controller的
//所有 父view controllers都必須有一個恢復標識符

@property(nonatomic, readonly, copy) NSArray *subviews  //當前視圖的所有子視圖
@property(nonatomic, readonly) UIView *superview //當前視圖的父視圖

@property(nonatomic) NSInteger tag  //當前視圖的標籤

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode
//色調調整模式,開始用於IOS7
@property(nonatomic, retain) UIColor *tintColor
//色調顏色,開始用於IOS7

@property(nonatomic) CGAffineTransform transform  //視圖的仿射變換

@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
//決定與用戶交互事件是否從被忽略並從事件隊列中移除

@property(nonatomic, readonly) UIWindow *window  //當前視圖上的UIWindow對象

以上就是 UIView 這個類的全部屬性。
好了今天就先到這裏,接下來就要開始 UIView 中的方法了。
發佈了0 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章