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

UIView 学习知识点

2015-08-29 21:17 399 查看
UI学习第一周

UIView 视图类 :代表屏幕上的一块矩形区域,在屏幕上看到的任何一个元素都是UIView或者UIView的子类

创建UIView的几大要素:

//1.大小 – 宽和高

//2.位置 – 视图左上角点得坐标,x(横坐标), y(纵坐标)

//3.快速创建结构体的变量的方法

CGRect -> CGREcetMake() 包含位置和大小

CGPoint -> CGPointMake() 包含位置 x和y

CGSize -> CGSizeMake() 包含大小 width 和 height

实例:

//1,创建视图对象

UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

//2,更改背景颜色

redView.backgroundColor = [UIColor redColor];

(在这个位置可以给视图设置唯一标识 tag

redView.tag = 101; //可以通过tag值取到redView视图)

//3,添加到父视图上 -- window上

[self.window addSubview:redView];

//4,释放所有权 -- 对应alloc操作

[redView release];

UIView视图相关的属性

centerView.hidden = YES; //显隐性, YES则显示,NO则隐藏

rightUpView.alpha = 0.2; //透明度 ,值的范围在0 – 1.0之间

backgroundColor:背景颜色

superview:获取一个视图的父视图, 一个视图只能有一个父视图

subviews:获取一个视图所有的子视图.NSArray.数组中子视图的位置和添加子视图的顺序一致

tag:视图的唯一标识,是一个整数值,一般给100以上

//通过tag值获取视图

UIView *tempView = [self.window viewWithTag:101];

//打印视图

//打印window和中心视图的所有子视图

NSLog(@”window:%@”, self.window.subviews);

NSLog(@”window:%@”, centerView.subviews);

//打印中间视图和右上角视图的父视图

NSLog(@”center:%@”, centerView.superview);

NSLog(@”leftUp:%@”, leftUpView.superview);

//通过window的subviews获取

UIView *tempView = [self.window.subviews objectAtIndex:1];

//视图操作的API

//运用创建视图方法分别创建红黄蓝绿视图:

//将蓝色添加到黄色视图和红色视图中间

//[self.window insertSubview:blueView belowSubview:yellowView];

//[self.window insertSubview:blueView aboveSubview:redView];

//[self.window insertSubview:blueView atIndex:1];

//该方法将视图添加到subviews数组中最后一个位置

[self.window addSubview:blueView];

[blueView release];

//1.把绿色视图移动到最后面

//[self.window sendSubviewToBack:blueView];

//2.把绿色视图移动到最前面

//[self.window bringSubviewToFront:blueView];

//3.将蓝色视图和红色视图换下位置

//[self.window exchangeSubviewAtIndex:3 withSubviewAtIndex:0];

//4.将蓝色视图移除掉

//[blueView removeFromSuperview];

//管理视图的层级关系:

一个视图只能有一个父视图,但是可以有多个子视图

视图subviews中元素的位置和子视图添加顺序一致,越晚添加的视图,处在数组中的最后位置.

晚添加的视图如果和之前的视图有重叠部分,会覆盖掉之前的.

子视图永远显示子啊父视图的前面

添加子视图和调整视图的层级关系,需要由父视图来调用对应的方法

如果要移除某个视图,直接由移除的视图调用remoceFromSuperview方法即可.

视图具有的和位置相关的属性

1.frame:既包含大小,也包含位置,而位置是视图区域左上角的点的坐标,相对于父视图坐标原点的距离.

2.center:中心点的位置.

3(难点).bounds:既包含大小,也包含位置,而位置是视图区域左上角的点的坐标,相对于自身视图坐标原点的距离.

改变bounds中x,y.会造成自身视图坐标原点位置发生变化,影响子视图位置.

实例:

//布局思想 -- 创建一个和屏幕等大的内容视图,添加到window上,而所有的子视图都添加到内容视图上.

UIView *containerView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];

containerView.backgroundColor = [UIColor yellowColor];

[self.window addSubview:containerView];

[containerView release];

//接下来将所有的子视图都添加到内容视图containerView上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: