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是根据他的父视图来定义位置信息的) 如果移除父视图 其上面的所有子视图都会被移除
原文:http://www.cnblogs.com/liYongJun0526/p/4881293.html