UIView 学习知识点

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视图相关的属性

  1. centerView.hidden = YES; //显隐性, YES则显示,NO则隐藏
  2. rightUpView.alpha = 0.2; //透明度 ,值的范围在0 – 1.0之间
  3. backgroundColor:背景颜色
  4. superview:获取一个视图的父视图, 一个视图只能有一个父视图
  5. subviews:获取一个视图所有的子视图.NSArray.数组中子视图的位置和添加子视图的顺序一致
  6. 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];

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

  1. 一个视图只能有一个父视图,但是可以有多个子视图
  2. 视图subviews中元素的位置和子视图添加顺序一致,越晚添加的视图,处在数组中的最后位置.
  3. 晚添加的视图如果和之前的视图有重叠部分,会覆盖掉之前的.
  4. 子视图永远显示子啊父视图的前面
  5. 添加子视图和调整视图的层级关系,需要由父视图来调用对应的方法
  6. 如果要移除某个视图,直接由移除的视图调用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上

posted @ 2015-08-29 21:17  奎了个善  阅读(222)  评论(0编辑  收藏  举报