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

IOS UIView

2015-09-22 18:59 351 查看
当我们 在玩别人的手机APP的时候,是否也会有这样的感觉:如果哪一天当自己走在接头发现别人在玩自己编写的手机App的时候,会发自内心的窃喜。我也可以做到。我就是呆着这样的心情走上了征战IOS的道路。

废话少说言归正传 :当我们在玩APP的时候你会发现APP的页面很炫,并且可以点击可以书写内容可以页面跳转以及等等。其实你再页面看到的几乎都是UIView。

UIView是什么这么神奇。其实UIView就是一个矩形的方框。你可以在这个方框区域内进行操作。

先把创建控件步骤写一下按照按图索骥你会发现事半功倍:

创建UI控件 1初始化一个控件 2设置属性 例如 背景颜色 3显示视图 4注意释放

首先:UIView创建在window中 他是有在window中坐标和长度和宽度的。下面创建一个UIView

UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];

这样就在window中创建了一个坐标为(100, 100)宽度为:200 高为:200的矩形视图在window中。但是控件默认是白色。并且还没有添加到window中 当你运行Xcode的时候你不会发现有任何矩形控件。

这里为了方便观看自己创建的UIView的大小和位置需要给UIView添加背景颜色

aView.backgroundColor = [UIColor blackColor];

这样控件UIView就有了背景颜色。先在还是不能够显示在window中。需要下一步操作

[self.window addSubview:aView]; 这样再运行Xcode你就会发现有一个黑色的矩形的视图。

按照上面的步骤可以以此创建很多类似的UIView。下面介绍下有关UIView的操作:

当我们在window中创建UIView的时候,这里的window类似于一个容器,把依附于他的UIView都存放在这个容器里面。

那么怎么取出存放在window中的视图呢??? 苹果已经给咱们写好了一个方法。

回想OC中能存放数据的容器的有:数组,字典,集合。那么这里存放视图可以把他看做存放在一个数组中那么就要用数组去接收:NSSArray *subViews = self.window.subviews; 这样就会把存放在window中的子视图都放在数组中。

视图的位置互换:

由于视图是按照类似于数组存放在window容器中,他是有下标的。按照你新建的顺序,他会有对应的下标;

例如:创建了一个aView,bView,cView 三个视图 其中aView上面有bView和cView

[aView insertSubview:cView atIndex:0]; [aView insertSubview:bView atIndex:0];

管理视图的层次

把指定的视图放到最前面 [aView bringSubviewToFront:bView];

上面是调整视图的层次,用的最多的地方就是在给页面排版的时候。

学到这刚刚是对UIView有了初步认识。UIView作为其他视图的基类。他有很多属性

可以给视图添加标签,添加标签的最大好处就是在你想调用这个控件的时候可以直接调用控件的标签,把控件取出来,然后对控件进行操作。例如:cView.tag = 100;这里需要注意的是标签要在程序中唯一,并且标签的值不能为0;

我们给控件添加了标签那么怎么利用标签取出来控件,然后再对取出来的控件进行操作

UIView *view = [self.window viewWithTag:100]; 这样就把标签为100的视图去出来了。

view.backgroundColor = [UIColor greenColor];这样又把去出来的标签对应的控件的背景颜色改变了。其实用标签操作方便省事。

最后别忘了 创建了这么多控件UIView还需要一个一个的释放掉。要不然会造成内存泄露,这是开发ios的大忌。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: