- 1都繼承了UIView
所以所有控件都可以addsubview另一個控件
還能繼承UIView的所有方法穴亏,與屬性褪储。
如
tag、frame兑障、alpha、背景顏色······ - 2UIControl的子類能移動和點擊蕉汪。
- 3可以自定義控件
可以為控件增加屬性和自定義樣式
UITextfield不可以換行
UITextView沒有PlaceHolder
所有空間都是UI
控件可以交互
- 1三個結(jié)構(gòu)體 CGPoint流译、CGSize、CGRect
- CGPoint(坐標(biāo))
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
看到這個想必你已經(jīng)懂了者疤,不再解釋福澡。
- CGSize(大小)
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
不解釋驹马。
3.CGRect(point和size的組合)
struct CGRect {
CGPoint origin; //偏移是相對父視圖的
CGSize size;
};
typedef struct CGRect CGRect;
同樣 不解釋革砸。
結(jié)構(gòu)體的關(guān)鍵字是struct
frame是cgpoint和cgrect的組合結(jié)構(gòu)體
通過addsubview方法添加的視圖,越晚添加越放在上層糯累。
這三個結(jié)構(gòu)體均在一個頭文件里:CGGeometry.h
center是view的中間
2)視圖的最基本屬性
frame和center都是相對于父視圖的算利,bounds是相對于自身的
frame 是CGRect frame的origin是相對于父視圖的左上角原點(0,0)的位置,改變視圖的frame會改變center
center 是CGPoint 指的就是整個視圖的中心點泳姐,改變視圖的center也會改變frame
bounds 是CGRect 是告訴子視圖本視圖的原點位置(通俗的說就是效拭,子視圖的frame的origin與父視圖的bounds的origin的差,就是子視圖相對于父視圖左上角的位置仗岸,如果結(jié)果為負(fù)允耿,則子視圖在父視圖外)
frame子view在父view中的大小
bounds是參照自身的大小。
通過addSubview:這個方法添加子類扒怖,不管誰添加它较锡,只要越晚添加,視圖就在越上層
移除父視圖也會把它得子視圖移除