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是根据他的父视图来定义位置信息的) 如果移除父视图 其上面的所有子视图都会被移除