UIiew h的學習理解

2021-07-10 02:37:26 字數 4382 閱讀 3098

@inte***ce uiview : uiresponder

- (id)initwithframe:(cgrect)frame;

// yes:能夠跟使用者進行互動

@property(nonatomic,getter=isuserinteractionenabled

) booluserinteractionenabled; 

// default is yes

// 控制項的乙個標記(父控制項可以通過tag找到對應的子控制項)

@property(nonatomic) 

nsintegertag; 

// default is 0

// 圖層(可以用來設定圓角效果\陰影效果)

@property(nonatomic,readonly,retain) 

calayer 

*layer;

@end

@inte***ce uiview(uiviewgeometry)

// 位置和尺寸(以父控制項的左上角為座標原點(0, 0))

@property(nonatomic)cgrect 

frame;

// 位置和尺寸(以自己的左上角為座標原點(0, 0))

@property(nonatomic)cgrect 

bounds;

// 中點(以父控制項的左上角為座標原點(0, 0))

@property(nonatomic)cgpoint 

center; 

// 形變屬性(平移\縮放\旋轉)

@property(nonatomic) cgaffinetransformtransform; 

// default iscgaffinetransformidentit y

// yes:支援多點觸控

@property(nonatomic,getter=ismultipletouchenabled) boolmultipletouchenabled; 

//default is no

@end

@inte***ce uiview(uiviewhierarchy)

// 父控制項

@property(nonatomic,readonly)uiview 

*superview;

// 子控制項(新新增的控制項預設都在subviews陣列的後面, 新新增的控制項預設都顯示在最上面\最頂部)

@property(nonatomic,readonly,copy) nsarray *subviews;

// 獲得當前控制項所在的window

@property(nonatomic,readonly)uiwindow 

*window;

// 從父控制項中移除乙個控制項

- (void)removefromsuperview;

// 新增乙個子控制項(可以將子控制項插入到subviews陣列中index這個位置)

- (void)insertsubview:(uiview *)viewatindex:(nsinteger)index;

// 交換subviews陣列中所存放子控制項的位置

- (void)exchangesubviewatindex:(nsinteger)index1withsubviewatindex:(nsinteger)index2;

// 新增乙個子控制項(新新增的控制項預設都在subviews陣列的後面, 新新增的控制項預設都顯示在最上面\最頂部)

- (void)addsubview:(uiview *)view;

// 新增乙個子控制項view(被擋在siblingsubview的下面)

- (void)insertsubview:(uiview *)view belowsubview:(uiview*)siblingsubview;

// 新增乙個子控制項view(蓋在siblingsubview的上面)

- (void)insertsubview:(uiview *)view abovesubview:(uiview*)siblingsubview;

// 將某個子控制項拉到最上面(最頂部)來顯示

- (void)bringsubviewtofront:(uiview *)view;

// 將某個子控制項拉到最下面(最底部)來顯示

- (void)sendsubviewtoback:(uiview *)view;

- (void)didaddsubview:(uiview *)subview;

- (void)willremovesubview:(uiview *)subview;

- (void)willmovetosuperview:(uiview *)newsuperview;

- (void)didmovetosuperview;

- (void)willmovetowindow:(uiwindow *)newwindow;

- (void)didmovetowindow;

// 是不是view的子控制項或者子控制項的子控制項(是否為view的後代)

- (bool)isdescendantofview:(uiview *)view; 

//returns yes for self.

// 通過tag獲得對應的子控制項(也可以或者子控制項的子控制項)

- (uiview*)viewwithtag:(nsinteger)tag; 

// recursive search. includes self

// 控制項的frame發生改變的時候就會呼叫,一般在這裡重寫布局子控制項的位置和尺寸

// 重寫了這個寫方法後,一定呼叫[super layoutsubviews];

- (void)layoutsubviews;

@end

@inte***ce uiview(uiviewrendering)

// yes : 超出控制項邊框範圍的內容都剪掉

@property(nonatomic) 

bool 

clipstobounds;

// 背景色

@property(nonatomic,copy) 

uicolor 

*backgroundcolor; // default is nil

// 透明度(0.0~1.0)

@property(nonatomic) 

cgfloat 

alpha; 

// default is 1.0

// yes:不透明 

no:透明

@property(nonatomic,getter=isopaque)bool 

opaque; 

// default is yes

// yes : 隱藏 

no : 顯示

@property(nonatomic,getter=ishidden)bool 

hidden;

// 內容模式

@property(nonatomic) 

uiviewcontentmodecontentmode; 

// default is uiviewcontentmodescaleto

fill

@end

@inte***ce uiview(uiviewanimationwithblock

s) + (void)animatewithduration:(nstimeinterval)durationdelay:(nstimeinterval)delay options:(uiviewanimationoptions)optionsanimations:(void (^)(void))animations completion:(void (^)(boolfinished))completion;

+ (void)animatewithduration:(nstimeinterval)durationanimations:(void (^)(void))animations completion:(void (^)(boolfinished))completion;

+ (void)animatewithduration:(nstimeinterval)durationanimations:(void (^)(void))animations;

+ (void)animatewithduration:(nstimeinterval)durationdelay:(nstimeinterval)delayusingspringwithdamping:(cgfloat)dampingratioinitialspringvelocity:(cgfloat)velocityoptions:(uiviewanimationoptions)options animations:(void(^)(void))animations completion:(void (^)(boolfinished))completion;

@end

Restful的學習理解

最近工作需要用到restful,以前沒有關注過。都是寫一些linux驅動,qemu模擬器開發等。把心得寫一下。restful 這是乙個面向資源的架構,由一名老外提出的。屬於一種約束。只要遵從這種約束的都可以稱為resetful。但是不能叫restful架構,因為它根本就不是什麼架構。進入正題 什麼是...

Hashmap的學習理解

一 hashmap的簡介概況 1.hash簡介 hashmap 是乙個雜湊表,它儲存的內容是鍵值對 key value 對映。hashmap 的實現不是同步的,這意味著它不是執行緒安全的。它的key value都可以為null。此外,hashmap中的對映不是有序的。hashmap 的例項有兩個引數...

繼承的學習理解

new出來的子類呼叫函式方法,如果子類沒有該方法,則從父類進行查詢,方法若進一步對其他方法進行了呼叫的話,則看該方法的修飾符是什麼。若為private則,不可被子類繼承 若為預設,則可被子類繼承,看子類是否對方法進行了重寫。繼承注意問題 上述鏈結中有乙個很好的例子,new出的子類呼叫方法,如果因為父...