UIView

  UI概念

        UIWindow 就是一个窗口,通过这个窗口,我们可以看到窗口里面对应的内容
       在IOS里面  一般只有一个窗口(UIWindow),用于管理,协调应用中显示的控件
        主要作用:1.他是一个容器,给 视图 提供展示的区域  2.将事件(如:旋转,点击等)分发给视图
        UIWindow  其实也是一个视图(view),它也继承自UIView

       UIWindow一般和硬件的尺寸一样大
     
       UIWindow一个非常重要的属性叫  rootViewController  用来告诉系统哪一个是根 视图控制器(用来调度 管理视图的控制者)
      还有 一个重要的方法makeKeyAndVisible 让窗口显示并接收事件

1.初始化窗口并获取硬件尺寸
       self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
       bounds 是坐标体系(位置)里面的一种,相对自身来说,也就是以自己为主,自己的边境范围  相对于自身的范围  bounds的原点永远是(0,0)
        Frame 是坐标体系(位置)里面的一种 他是相对父视图或者硬件设备来获取自己的位置的(它需要一个参考物来定自己的位置)
 
2.初始化窗口的背景颜色  UIColor所有颜色的类
     定义窗口的颜色    self.window.backgroundColor = [UIColor redColor];
3.初始化一个视图
     UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0,0,100,100)];
4.结构体 struct CGRect{
         CGPoint origin ;  origin 是一个点(原点)起始点
         CGPoint  size; size 大小  尺寸   自身的大小  尺寸
  };
    Frame  需要一个结构体(CGRect)
    Frame 是依据他的父视图  来确定自己所在的位置的  
    backgroundColor  背景颜色
   把视图的背景颜色设置为红色
   view.backgroundColor = [UIColor redColor];
5.把视图view贴到窗口window上(父视图)
   [self.window addSubview:view1];
6.视图的透明度
    alpha 视图透明度的属性  默认是值是1 也就是完全不透明
     透明度为 0 时  就不会在接收 任何触发事件
   例如:将view视图设置为0.5
    view.alpha = 0.5;
7.查找视图 通过tag来查找
     tag 类似于身份证号 可以通过tag来找到对应的视图(依赖于父视图的  在它的父视图上通过tag找到这个视图)
     view.tag = 10;
  通过viewWithTag方法 可以找到对应的tag的视图
8.控制视图
    hidden 默认值是NO  控制视图是否隐藏   如果是YES 就隐藏视图
 例如:要隐藏视图view
       view.hidden = YES;
9.makeKeyAndVisible  让窗口显示  并接收事件
    [self.window makeKeyAndVisible];
10.定时器的书写
     NSTimer *timer = [NSTimer timerWithTimeInterval: 2 target :self selector:@selector(change) userInfo:nil  repeats:YES ];
[[NSRunLoop currentRunLoop]addTimer:timer forMode:NSDefaultRunLoopMode];

11.center 中心点 相对于 他父视图来说的(如果改变中心点的位置 视图的位置也会发生改变)
例如:把view放在屏幕的中心
    方法1.view.center = CGPointMake([UIScreen mainScreen].bounds.size.weight/2,[UIScreen mainScreen].bounds.size.height/2);
    方法2.view.center = CGPointMake(CGRectGetWidth([UIScreen mainScreen].bounds)/2,CGRectGetHight([UIScreen mainScreen].bounds)/2);

12.裁剪边境  把超出其范围的部分剪切掉
    view.clipsToBounds = YES;

13.设置UIView的拐角
   left.layer.cornerRadius = 4; 
   left.layer.masksToBounds = YES;
                
14.图层关系的操作
      操作两个视图的图层关系时 两个图层必须在同一个父视图上  如果不在同一个父视图上那他们就没有关系
 1).bringSubviewToFront是让某个视图放在父视图的最上面
        如:将view放在window的最上面显示
        [self.window bringSubviewToFront:view];
 2).sendSubviewToBack:是把一个视图放在父视图的最下面
       [self.window sendSubviewToBack:view];
3). insertSubview:  belowSubview:  把一个子视图放到另一个子视图的下面
     [self.window insertSubview:view1 belowSubview:view];
4).insertSubview:  aboveSubview: 把一个子视图放到另一个子视图的上面
    [self.window insertSubview:view1 aboveSubview:view];
5).交换父视图上面的两个视图的位置
  [self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:2];
咱们往同一个视图上面  添加子视图的时候  系统会自动帮咱们记录一个Index  只要添加一个子视图就会增加1  计数从0开始
6).insertSubview:(UIView *)view atIndex:(NSInteger)index插入一个视图到另一个视图下
    [self.window insertSubview:view1 atIndex:1];
7).移除视图的方法
   removeFromSuperview  从父视图里 移除视图
8)总结 :子视图依赖于父视图  如果父视图的位置发生改变  子视图的位置也会发生改变(因为frame是根据他的父视图来定义位置信息的)    如果移除父视图  其上面的所有子视图都会被移除
   

 

posted @ 2015-10-15 08:20  微笑着转身  阅读(108)  评论(0编辑  收藏  举报