UIView 的介绍

作者: 佟瑾年 | 来源:发表于2016-08-23 11:38 被阅读71次

    view:(视图):代表屏幕上的一个矩形区域。iOS中的UIView来表示视图。
    UI控件都属于view ,iOS中所有能看到的内容都是view或其子类。
    超出父视图的范围:仍能显示,但是超出范围的控件无法执行。

    那么如何创建View?
      视图创建代码
    UIView *blueView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 120, 100)];
    blueView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:blueView];
    

    iOS提供了用于布局的平面坐标系:
    左上角为坐标轴的原点。
    垂直向下:y 的正方向 屏幕最上到最下可以分为480等份 (3.5寸)
    水平向右:为x的正方向 最左到最右可以划分320等份。
    坐标系不是以像素作为划分依据,而是以“点”作为依据。

    frame

    frame是view的重要属性,视图布局的关键,它决定了视图的大小和位置。
    frame是一个结构体,包含两部分内容:origin和size。
    origin是一个结构体,包含两部分内容:x和y。
    size是一个结构体,包含两部分内容:width和height。
    frame的origin和size是相对于俯视图来说的。
    CGRectMake() 函数可以帮助我们快速构造一个CGRect变量。

    子视图永远是以父视图来作为标准的。

    Center

    (中心点)也是view的重要属性
    center是个结构体,包含两个部分:x和y。
    center与frame,有着密切的联系。
    Center.x = frame.origin.x + frame.size.width/2;
    Center.y = frame.origin.y + frame.size.height/2;

    bounds(边界)

    Bounds也是view的重要属性,用于定义自己的边界,他同frame一样是一个CGRect结构体变量。
    当一个view设置bounds时,会把自己当成一个容器,定义自己的边界大小,以及左上角的初始坐标。
    当子视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,而非左上角。

    坐标系始终只有一个

    frame子视图的origin是相对于父视图的origin来说的。
    bounds(改变的是自己的坐标系)子视图的origin 是相对于坐标的坐标系来说的。

    view的三个属性bounds frame center 之间的关系

    C537AC2F-EE12-4A23-BD2D-7EDEDDAC21ED.png

    添加视图

    UIView的addSubview:方法可以添加子视图。
    对于同一个视图的所有子视图来讲,后添加的子视图会把已经添加的子视图盖在下面。
    UIView提供了其他添加视图的方法:

    指定位置插入:insertSubview: atldex:
    指定视图上插入:insertSubview: aboveSubview:
    指定视图下插入:insertSubview: belowSubview:

    管理视图

    把指定的子视图移动到最前面:bringSubviewToFront:
    把指定的子视图移动到最后面:bringSubviewToBack:
    交换两个指定位置的子视图:exchangeSubviewAtIndex: withSubviewAtIndex:
    把receiver从父视图上移除 : removeFromSuperview 子视图自己调用

        //把某个view放到最前面
        [self.view bringSubviewToFront:blueView];
        //把某个view放到最后面
         [self.view sendSubviewToBack:blueView];
        //  交换两个位置的view
          [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:3];
       //删除某个view
         [blueView removeFromSuperview];
    

    子视图在父视图的上面。若是同层次的谁先被添加,谁在下面。
    指定位置的就在相应的位置 ,但是后续操作会改变该视图当前的位置。
    但父视图执行的调换,只能控制其子视图的

    后面会有详细功能介绍。以及更多的使用方法。如果你喜欢我的文章,并且希望我继续更新,请随意打赏。

    相关文章

      网友评论

        本文标题:UIView 的介绍

        本文链接:https://www.haomeiwen.com/subject/vbngsttx.html