zoukankan      html  css  js  c++  java
  • 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是根据他的父视图来定义位置信息的)    如果移除父视图  其上面的所有子视图都会被移除
       
    
  • 相关阅读:
    结对编程--黄金分割点游戏
    第一次单元测试,小紧张呢!
    Visual studio 2013 安装的漫长过程
    课后练习题:读程序
    进度条
    “啰嗦”的四则运算
    我与git“美妙”的一天
    结对编程(黄金分割点)
    Visual Studio 2015的安装和简单的测试
    软件工程学习体会
  • 原文地址:https://www.cnblogs.com/liYongJun0526/p/4881293.html
Copyright © 2011-2022 走看看