记录一些容易忘记的属性 -- UIView

时间:2021-09-16 09:12:22

  一个视图原来添加在某个父视图上,然后再将它添加到另外的一个视图上,这个视图会从原来的某个父视图中移除,添加到新的视图上。

  子视图对象指针存在父视图的subviews数组中,说明,一个视图可以有多个子视图

  视图间的层次关系:

    1.子视图覆盖父视图。同一视图的子视图之间,后添加的视图覆盖先添加的视图。

    2.假设self.window有红色和黄色子视图, 黄色视图在红色视图后添加,这个情况下,不管红色视图由多少子视图,都被会黄色视图覆盖。

redView.clipsToBounds = YES;

    文档解释:// When YES, content and subviews are clipped to the bounds of the view. Default is NO.

          //设置是否裁剪子视图,设置为YES,会将当前视图的子视图超出部分给裁剪掉

  yellowView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

    //    UIViewAutoresizingNone    //默认情况,(视图)不变
    //    UIViewAutoresizingFlexibleLeftMargin //可变左边距
    //    UIViewAutoresizingFlexibleWidth       //可变宽度
    //    UIViewAutoresizingFlexibleRightMargin //可变右边距
    //    UIViewAutoresizingFlexibleTopMargin   //可变上边距
    //    UIViewAutoresizingFlexibleHeight      //可变高度
    //    UIViewAutoresizingFlexibleBottomMargin //可变下边距

//把某一个子视图放到子视图中最上面的位子,调整位置后,在父视图的数组中的位置也发生变化。
    [self.window bringSubviewToFront:view1];

//把某一个子视图放到视图的最后面
    [self.window sendSubviewToBack:view1];

//把参数一的视图放到指定数组中的指定位置
    [self.window insertSubview:view3 atIndex:2];
    //把参数一的视图放到数组中指定视图的上面
    [self.window insertSubview:view3 aboveSubview:view1];
    //把参数一的视图放到数组中指定视图的下面
    [self.window insertSubview:view3 belowSubview:view1];
    //交换指定位置的两个视图的位置
    [self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:2];