与时俱进的IT

UI(一)窗口、视图

2018-07-30  本文已影响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];

     */

上一篇下一篇

猜你喜欢

热点阅读