iOS学习之UI初级————UIView的概念属性以及相关方法

浅谈编者对UIView的认识与理解


在iPhone上看到的控件大部分是UIView的子类,在屏幕上是一块矩形区域,通常用来处理该区域的绘制和触屏事件。一个view可以作为其他view的父视图,同时决定着这些view的位置和大小,UIView类做了大量的工作去管理这些内部view的关系,同时view也是MVC架构中的View成分。


视图层次和子视图管理
除了提供自己的内容之外,一个view也可以表现得像一个容器。当一个view包含其他view时,就在两个view之间创建了一个父子关系。在这个关系中孩子视图被当作子视图(subview),父视图被称为(superView),一个superview可以嵌入多个subview,但是一个subview只能有一个superview创建这样一个关系对应用的可视化和行为都有重要的意义。
在视觉上,subview隐藏了superview的内容。如果subview是完全不透明的,那么subview所占据的区域就完全的隐藏了superview的相应区域。如果subview是部分透明的,那么两个view在显示在屏幕上之前就混合在一起了。每个superview都用一个有序的数组存储着它的subview,存储的顺序会影响到每个subview的显示效果。如果两个subview重叠在一起,后来被加入的那个(或者说是排在view数组后面的那个)出现在另一个上面。
view关系也影响着一些行为。改变superview的尺寸会连带着改变subview的尺寸和位置。在这种情况下,你可以通过合适的配置视图来重定义subview的尺寸。其他会影响到subview的改变包括隐藏superview改变父视图的alpha值,或者转换superview。

UIView的创建

首先提一下iOS的坐标系统,以屏幕的左上角为原点,向右为x方向的正方向,向下为y方向的正方向。

frame与bounds的区别:frame是以superView的左上角为原点的相对位置,bounds是以屏幕的左上角为原点的相对位置。

通过代码来创建view:

UIView *view = [UIView alloc] init];//开辟一块内存存放view,并且初始化view的值

view.frame = CGRectMake(0,0,100,100);//设置view的位置和尺寸,从屏幕的左上角的位置100 * 100的大小

[self.window addSubview:view];//将view添加到window上去显示


UIView的属性和方法:

view.alpha = 0.5;//设置view的透明度(在0到1之间,1为不透明)

view.backgroundColor = [UIColor whiteColor];//设置view的背景颜色为白色

view.hidden = YES/NO;//设置view是否隐藏,隐藏superview会导致subview一起隐藏

view.tag = 1000;//设置view的tag值,通常用于在不是全局变量的情况下另一个方法中可以通过tag值来获取到这个view,一般情况下tag值要取高一点,避免跟系统的某些对象的tag值发生冲突

view.userInteractionEnable = YES;//是否响应触摸事件,系统默认不开启触摸事件。

view.multipleTouchEnable = YES;//设置开启多点触摸。

·insertSubview:atIndex: // 视图插入到指定索引位置
·insertSubview:aboveSubview: // 视图插入指定视图之上
·insertSubview:belowSubview: // 视图插入指定视图之下
·bringSubviewToFront: // 把视图移动到最顶层
·sendSubviewToBack: // 把视图移动到最底层
·exchangeSubviewAtIndex:withSubviewAtIndex // 把两个索引对应的视图调换位置
·removeFromSuperview // 把视图从父视图中移除




此文为初学者编者对UIView的认识与理解,如有误请指正。

你可能感兴趣的:(UI,UIView,ios开发)