UIview
-
什么事控件
- 屏幕上的所有UI元素都見做控件(也有叫做視圖、組件)
- 比如按鈕(UIbutton)、文本(UIlabel)都是控件
-
空間的共同屬性有哪些
- 尺寸
- 位置
- 背景色
.....
-
蘋果將空間的共同屬性都抽取到父類UIView中
- 所有的空間最終都集成自UIView
- UIButton、UIbabel都是繼承自UIView(在頭文件中可以看到)
- command + 鼠標左鍵點擊 類名 進入頭文件查看
父控件、子控件
- 每個控件都是個容器,能容納其他控件
- 內部小控件是大控件的子控件
- 大控件是內部小控件的父控件
- 每一個控制器(UIViewController)內部都有個默認的UIView屬性
- @property(nonatomic,retain) UIView *view;
- 控制器中管理的其他所有控件都是這個view的子控件(直接或者間接)
UIView的常見屬性
@property(nonatomic,readonly) UIView *superview;
// 獲得自己的父控件對象
@property(nonatomic,readonly,copy) NSArray *subviews;
// 獲得自己的所有子控件對象
@property(nonatomic) NSInteger tag;
// 控件的ID(標識),父控件可以通過tag來找到對應的子控件
@property(nonatomic) CGAffineTransform transform;
// 控件的形變屬性(可以設置旋轉角度、比例縮放、平移等屬性)
(void)addSubview:(UIView *)view;
// 添加一個子控件view
(void)removeFromSuperview;
// 從父控件中移除
(UIView *)viewWithTag:(NSInteger)tag;
// 根據一個tag標識找出對應的控件(一般都是子控件)
@property(nonatomic) CGRect frame;
// 控件矩形框在父控件中的位置和尺寸(以父控件的左上角為坐標原點)
@property(nonatomic) CGRect bounds;
// 控件矩形框的位置和尺寸(以自己左上角為坐標原點,所以bounds的x、y一般為0)
@property(nonatomic) CGPoint center;
// 控件中點的位置(以父控件的左上角為坐標原點)
UIKit坐標系
- 在UIKit中,坐標系的原點(0,0)在左上角,x值向右正向延伸,y值向下正向延伸