6.UIView的属性和方法
UIView的常见属性
-
父子控件
- 每一个控制器(UIViewController)内部都有默认的UIView属性 @property(nonatomic,retain) UIView *view;
- 控制器中管理的其他所有控件都是这个UIView的子控件(直接或者间接)
-
NSArray *subviews
- 所有的子控件
- 数组元素的顺序决定着子控件的显示层级顺序(下标越大的,越显示在上面)
-
常见的属性
-
@property(nonatomic,readonly) UIView *superview;
获得自己的父控件对象
-
@property(nonatomic,readonly,copy) NSArray *subviews;
获得自己的所有子控件对象
-
@property(nonatomic) NSInteger tag;
控件的ID(标识),父控件可以通过tag来找到对应的子控件
-
@property(nonatomic) CGAffineTransform transform;
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
-
@property(nonatomic) CGRect frame;
控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
好处是: 父控件位置改变,子控件相对于这个父控件位置不变,子控件会跟着父控件位置的改变变化。
-
@property(nonatomic) CGRect bounds;
控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
-
@property(nonatomic) CGPoint center;
控件中点的位置(以父控件的左上角为坐标原点)
-
UIView的常见方法
- addSubview:
- 添加一个子控件
- 使用这个方法添加的子控件会被塞到subviews数组的最后面
- 可以使用下面的方法调整子控件在subview数组中的顺序
// 将子控件view插入到subviews数组的index位置
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
// 将子控件view显示到子控件siblingSubview的下面
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
// 将子控件view显示到子控件siblingSubview的上面
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
// 将子控件view放到数组的最后面,显示在最上面
- (void)bringSubviewToFront:(UIView *)view;
// 将子控件view放到数组的最前面,显示在最下面
- (void)sendSubviewToBack:(UIView *)
- 常见方法
-
(void)addSubview:(UIView *)view; 添加一个子控件view
-
(void)removeFromSuperview; 从父控件中移除
-
(UIView *)viewWithTag:(NSInteger)tag;根据一个tag标识找出对应的控件(一般都是子控件)。当多个控件tag值一样的后,他会根据添加的顺序进行查找的
-
UIKit 坐标系
在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸,如图:
补充
-
结构体转化成字符串用来打印的方法:
NSLog(@"%@", NSStringFromCGRect(self.view.frame));

浙公网安备 33010602011771号