UIView的基本认知

UIView的常见属性

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

UIView的常见方法

  • addSubview:
    • 添加一个子控件
    • 使用这个方法添加的子控件会被塞到subviews数组的最后面
  • 可以使用下面的方法调整子控件在subview数组中的顺序
// 重要属性
// 获取自己父视图的对象
@property(nullable, nonatomic,readonly) UIView *superview;
// 获取自己所有的子视图
@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;
// 视图矩形框在父视图中的位置和尺寸(以父视图的左上角为坐标原点)
@property(nonatomic) CGRect frame;
// 视图矩形框的位置和尺寸(以自身左上角为坐标原点)
@property(nonatomic) CGRect bounds; 
// 视图的中心位置(以父视图的左上角为坐标原点)
@property(nonatomic) CGPoint center; 
// 视图的标识,父视图可以通过tag来找到对应的子视图
@property(nonatomic) NSInteger tag;
// 视图的形变属性(可以设置、旋转角度、平移等属性)
@property(nonatomic) CGAffineTransform transform;


// 重要方法
// 从父视图中移除
- (void)removeFromSuperview;
// 在某一索引处插入子视图
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
// 改变两个子视图的索引
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

// 添加一个子视图
- (void)addSubview:(UIView *)view;
// 在子视图下面插入一个视图
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
// 在子视图上面插入一个视图
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

// 将子控件view放到数组的最后面,显示在最上面
- (void)bringSubviewToFront:(UIView *)view;
// // 将子控件view放到数组的最前面,显示在最下面
- (void)sendSubviewToBack:(UIView *)view;

// 根据tag标识找出对应的视图
- (nullable __kindof UIView *)viewWithTag:(NSInteger)tag; 

你可能感兴趣的:(UIView的基本认知)