您的位置:首页 > 产品设计 > UI/UE

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

2015-07-21 18:52 471 查看
视图之间层级关系:
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坐标,视图中心点坐标也会发生变化.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: