6.UIView的属性和方法

UIView的常见属性

  • 父子控件

    • 每一个控制器(UIViewController)内部都有默认的UIView属性 @property(nonatomic,retain) UIView *view;
    • 控制器中管理的其他所有控件都是这个UIView的子控件(直接或者间接)
  • NSArray *subviews

    • 所有的子控件
    • 数组元素的顺序决定着子控件的显示层级顺序(下标越大的,越显示在上面)
  • 常见的属性

    1. @property(nonatomic,readonly) UIView *superview;

      获得自己的父控件对象

    2. @property(nonatomic,readonly,copy) NSArray *subviews;

      获得自己的所有子控件对象

    3. @property(nonatomic) NSInteger tag;

      控件的ID(标识),父控件可以通过tag来找到对应的子控件

    4. @property(nonatomic) CGAffineTransform transform;

      控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)

    5. @property(nonatomic) CGRect frame;

      控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)

      好处是: 父控件位置改变,子控件相对于这个父控件位置不变,子控件会跟着父控件位置的改变变化。

    6. @property(nonatomic) CGRect bounds;

      控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)

    7. @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));

 

posted @ 2016-09-02 13:33  <瑾瑜>  阅读(101)  评论(0)    收藏  举报