IOS UIView 之屬性篇 – iPhone手機開發技術文章 iPhone軟體開發教學課程

從我一開始學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 之方法篇:https://blog.csdn.net/lc_obj/article/details/18511511

這裡隻是把UIView 類的屬性分享給大傢,若有錯誤歡迎指正 —— LC

發佈留言