圖1
圖2
圖3
所有控件都是UIView的子類,任意控件都可以addSubView
-
所有UIView控件都有的屬性:
- backGroundColor----背景顏色
- Alpha----透明度
- tage----標簽
- frame----框架
- hidden----隱藏
- 等
實現滑動一定要繼承UIScrollView
UIControl的子類都有點擊和拖動事件
-
可以自定義控件
- 可以增加屬性或自定義UI樣式
-
誤區
UITextFiled不可以換行
UITextView沒有placeholder
所有控件都以UI開頭
所有控件都可以與用戶交互
如果子類view比父類的view大 那么它的坐標為負的 bounds為本身
以上控件不懂可見圖1與圖2
-
這三個結構體均在一個頭文件里:[CGGeometry.h]
三個結構體 CGPoint、CGSize、CGRect
結構體關鍵字:
struct
CGPoint 代表坐標
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
看到這個想必你已經懂了,不再解釋。CGSize 代表大小尺寸
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
不解釋。-
CGRect 代表位置和大小
這個結構體中還有一個結構體
CGPoint
struct CGRect {
CGPoint origin; //偏移是相對父視圖的
CGSize size;
};
typedef struct CGRect CGRect;
同樣 不解釋。
見圖3
-
frame和center都是相對于父視圖的,bounds是相對于自身的
- frame 是CGRect frame的origin是相對于父視圖的左上角原點(0,0)的位置,改變視圖的frame會改變center
- center 是CGPoint 指的就是整個視圖的中心點,改變視圖的center也會改變frame
*bounds 是CGRect 是告訴子視圖本視圖的原點位置(通俗的說就是,子視圖的frame的origin與父視圖的bounds的origin的差,就是子視圖相對于父視圖左上角的位置,如果結果為負,則子視圖在父視圖外)
通過addSubview:這個方法添加子類,不管誰添加它,只要越晚添加,視圖就在越上層移除父視圖也會把它得子視圖移除。