從我一開始學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 中的方法了。
轉接下篇 UIView 之方法篇:http://blog.csdn.net/lc_obj/article/details/18511511
這裡只是把UIView 類的屬性分享給大家,若有錯誤歡迎指正 ―― LC