美文网首页与时俱进的IT
UI(一)窗口、视图

UI(一)窗口、视图

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 17:37 被阅读0次

    iOS:苹果移动设备的操作系统

    UIKit->里面包含了所有可以看的见得视图控件

    UIWindow:

    UIView:

    UIWindow:窗口->iOS应用程序中 只能有一个主窗口

    ☆☆☆☆☆ 有 并且只能有一个主窗口

    UIWindow 是用来显示承载 可以看到的控件的 容器

    UIWindow?容器->所有控件都是一层层 添加到窗口上的

    UIWindow 初始化

    initWithFrame构造方法->在创建一个对象的时候 同时给他一个Frame

    获取屏幕边境范围:[UIScreen mainScreen].bounds

    UIView:?是一个视图 -> 是所有视图类的父类

    UIWindow 也属于 视图

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    ViewController *vc = [[ViewController alloc] init];

    self.window.rootViewController = vc;

    self.window.backgroundColor = [UIColor brownColor];

    makeKeyAndVisible 让窗口 是主窗口 并且 显示在屏幕上

    [self.window makeKeyAndVisible];

    1、 视图的创建

    UIView *view = [[UIView alloc] init];

    视图的位置 和 自身大小

    frame - 位置

    屏幕上 是有很多像素点组成

    视图的起始位置:origin

    窗口的起始位置:是左上角(0,0)

    所有子视图 都是根据 origin(原点、起始点) 来定义起始位置

    size-> 尺寸 视图本身的大小

    frame 是视图中的一个属性

    CGRect:

    /*

        CGRect frame;

        CGPoint point = frame.origin;

        point.x = 0;

        point.y = 0;

        CGSize size = frame.size;

        size.width = 200;

        size.height = 200;

            */

    //    view.frame = CGRectMake(0, 0, 200, 200);

    // 背景颜色

    //    UIColor -> 颜色类 -> 创建的对象 是一种颜色

    //    UIColor *bule = [UIColor blueColor];

    //    view.backgroundColor = bule;

    //    view.backgroundColor = [UIColor blueColor];

    // 设置 视图透明度

    //    0.0(完全透明《所有属性方法 类似被禁用》) - 1.0(不透明)

    //    view.alpha = 0.5;

    // hidden:隐藏  YES:隐藏 NO:显示

    //    hidden 默认值是NO 不隐藏

    //    view.hidden = YES;

    //    NSLog(@"%d",view.isHidden);

    // 图层之间的关系

    // 视图 是 一层层 叠加到一个父视图上的

    // 父视图 子视图

    // 父视图 是一个承载体

    // 子视图 是父视图里面的一个元素

    // 父视图的位置发生改变 子视图 也会跟随 父视图位置 一起改变

    //    CGRectMake(原点 x, 原点 y, CGFloat width, CGFloat height)    

    // 在同一个父视图中

    // 1、view1 移动到最上面

    [self.window bringSubviewToFront:view1];

    // 把一个视图 移动到底下

    // 2、把view2移动到下一层

    [self.window sendSubviewToBack:view2];

    // 交换两个视图的位置

    - (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2

    //    subviews(所有子视图组成的数组) 数组->

    self.window.subviews

    NSLog(@"%@",self.window.subviews);

     // 初始化视图的顺序 就是把视图存放到subviews这个数组里面的顺序

    // 改变视图的顺序 就是在改变 subviews 数组里面元素的位置

    UIView *view = self.window.subviews[2];

    NSLog(@"%@",view);

    [self.window exchangeSubviewAtIndex:2 withSubviewAtIndex:1];

     // 插入一个视图 到另一个视图的上面

     UIView *insertView = [[UIView alloc] initWithFrame:CGRectMake(80, 250, 80, 80)];

    insertView.backgroundColor = [UIColor grayColor];

     [self.window addSubview:insertView];

    // 插入insertView 到view1上面

    1.[self.window insertSubview:insertView aboveSubview:view1];

    2.[self.window insertSubview:insertView atIndex:2];

    // 插入到哪一个视图的底下

    [self.window insertSubview:insertView belowSubview:view1];

     //    tag:标记 标签 标号 -> 同一个父视图里面的 身份证号

    insertView.tag = 100;

    // 可以通过tag值 在他的父视图上找到 这视图

    //    viewWithTag: 在一个父视图上面 查找有没有tag值是多少的 视图

    UIView *v = [self.window viewWithTag:100];

    //    v 就是insertView

    v.backgroundColor = [UIColor redColor];

    //    NSLog(@"%f",v.alpha);

    // 移除视图

    [v removeFromSuperview];

    //    frame: 是根据他的父视图 来定义 这个视图自身位置的(原点)

    // 定义frame 不要超出 父视图的范围

    // 超出部分 将不再接收任何响应事件

    //    center 中心点 对角线的交点

    //    center.x = 宽/2+原点的x

    //    center.y = 高/2+原点的y

    //    NSLog(@"view1.center.x:%f",view1.center.x);

    //    view1.center = CGPointMake(150, 200);

    // 改变中心点 可以改变视图的位置

    // 只能使用frame 在创建视图的时候 给他一个位置

    // 相对于自身的位置 原点永远是(0,0)

    //    bounds 自身的边境范围

    //    view1.bounds

    //    NSLog(@"%f",view1.bounds.size.width);

    //      bounds用途 是获得视图的宽高 忽略原点

    // 定时器 隔多少秒 去做某件事

    // NSTimer 定时器的类

    // 定时器 初始化

    // Interval:间隔(时间间隔) 单位是秒

    // selector:方法选择器->用来选择一个方法去执行

    // repeats:重复

    // target:让谁去执行

    // 隔1秒 执行一次start 重复执行

    //    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(start) userInfo:nil repeats:YES];

    //    ☆☆☆☆☆添加到父视图->如果没有这个方法 创建的视图 将不会被显示在屏幕上

    //    [父视图 addSubview:要添加的视图];

    //    [self.window addSubview:view];

     /*

     回顾:

         1、UIWindow : 是用来显示视图的一个窗口 -> 显示内容的容器

         2、UIView: 是视图 所有视图都是基于UIView的

         UIView:初始化

         UIView *对象名 = [[UIView alloc]initWithFrame:CGRectMake(原点x, 原点y, 视图的宽, 视图的高)];

         [父视图名字 addSubView:对象名];

         UIWindow初始化:

         UIWindow *窗口对象名 = [[UIWindow alloc]initWithFrame:屏幕的尺寸];

     屏幕尺寸:[UIScreen mainScreen].bounds

         XCODE7.1改动

         1、必须 手动让窗口显示

         2、如果想操作窗口 必须自己创建 窗口

         3、必须添加根视图控制器

         [窗口对象名 makeKeyAndVisible];

     视图的背景颜色:backgroundColor

     表示颜色的类:UIColor

         [UIColor whiteColor]

     视图的透明度:alpha

     视图是否隐藏:hidden 默认值NO

     坐标 位置 相关

     frame:相对父视图 创建视图 必须使用frame 给他位置

         center:相对父视图 视图的中心点 可以改变视图的位置

         bounds:相对自己 获得视图本身的大小 原点永远是(0,0)

     父视图 子视图:

     子视图 是根据 父视图 来定义自己的frame、center

     如果父视图 位置发生改变 子视图 也会跟随改变

     定时器:通过 时间间隔 执行某个方法

     定时器 隔多少秒 去做某件事

    NSTimer 定时器的类

     定时器 初始化

         Interval:间隔(时间间隔) 单位是秒

         selector:方法选择器->用来选择一个方法去执行

         repeats:重复

         target:让谁去执行

     隔1秒 执行一次start 重复执行

         [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(start) userInfo:nil repeats:YES];

         */

    相关文章

      网友评论

        本文标题:UI(一)窗口、视图

        本文链接:https://www.haomeiwen.com/subject/qfafvftx.html