1. 程式人生 > >IOS UIView 之屬性篇

IOS UIView 之屬性篇

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物件