进入UI_UiView;frame和bound以及视图之间层级关系

来源:互联网 发布:主播的网络热门歌曲 编辑:程序博客网 时间:2024/06/05 02:23
视图之间层级关系:

self.window insertSubview:<#(UIView *)#> aboveSubview:<#(UIView *)#>在第二个视图上插入第一个视图

self.window insertSubview:<#(UIView *)#> atIndex:<#(NSInteger)#> 在指定位置插入视图


   self.window insertSubview:<#(UIView *)#> belowSubview:<#(UIView *)#>  在第二个视图下面插入第一个视图


//将指定视图移到最后面

    [self.windowsendSubviewToBack:greenView];//greenView被放到subViews数组中的第一个位置,第一个出现,在最下面


   [self.windowbringSubviewToFront:blueView];//blueView被放到subViews数组中的最后一个位置,最后一个显示,在最上面


 [blueView removeFromSuperview];//移除蓝色视图;


视图之间的层级关系:1>子视图肯定在父视图的前面;2>后添加的视图如果和之前添加的视图有重叠部分,则后添加的视图会覆盖在之前添加的视图;3>如果在指定位置插入或者改变视图之间的层级关系,则都是需要父视图来管理的;4>如果从父视图上移除,则自己移除就可以;5>父视图通过subviews这个数组来管理子视图.

//获取子视图(一个视图上面可能会有很多个子视图,所以想要数组接收)

//    NSArray *subViews = view.subviews;

    

视图的tag值起到唯一标识视图的作用.


viewWithTag  是一个方


对于一个视图来说,只能有一个父视图,通过 purpleView.superview (purpleView是一个自定义的视图)获取它唯一的父视图,视图又通过数组subviews来管理附在其上面的子视图.先添加的视图存在于该数组的前面的位置,但是先添加的视图在显示的时候却是在后面.视图也可以通过tag值来获得指定的UIView对象.


    

    //frame:相对于父视图坐标系;bounds:相对子视图坐标系


IOS中每一个UIView对象都带有一个坐标系;frame的值取决于其相对父视图坐标原点的位置;bound的值取决于其相对自身坐标系原点的位置.当改变视图的bounds时会引起其自身坐标系的变化,从而引起视图上面子视图的变化.当视图中bounds中X坐标大于0会引起子视图向左移动;当小于0 的时候会引起子视图向右方向移动;当y大于0 的时候会引起子视图向上移动,y 小于0 的时候会引起向下移动.


    //如何获得视图的中心点坐标

    NSLog(@"%@",NSStringFromCGPoint(purpleView.center));

    

   //如果改变视图View的中心点坐标,会引起视图Frame发生相应变化;同样的,如果改变视图的frame坐标,视图中心点坐标也会发生变化.





0 0
原创粉丝点击