/****************************************************************************/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
///创建一个Window
/// 创建一个window,创建过程跟之前一样,用alloc进行创建,并且需要给window一个尺寸
/// window尺寸和屏幕一样大 (scree 屏幕 bounds 限制) 在自己的类里用self调用
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
/// 给window设置一个背景颜色
self.window.backgroundColor = [UIColor redColor];
/// 把window 设置成可见
[self.window makeKeyAndVisible];
///对window 进行释放
[_window release];
///UIView (cgrect 结构体)
///1.通过自定义的初始化方法创建一个UIView对象
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
/// 2.设置背景颜色
view1.backgroundColor = [UIColor lightGrayColor];
/// 3. 把view放到window上
[self.window addSubview:view1];
/// 4.内存管理
[view1 release];
// 练习
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(100, 150, 100, 100)];
view2.backgroundColor =[UIColor yellowColor];
[self.window addSubview:view2];
[view2 release];
// 练习
UIView *view3 =[[UIView alloc] initWithFrame:CGRectMake(100, 180, 100, 100)];
view3.backgroundColor =[UIColor blackColor];
[self.window addSubview:view3];
[view3 release];
/// 父视图通过一个数组subviews来管理他所有的子视图,容器会改变对象的引用计数,计数+1,所以只要对象添加到父视图之后,就可以相应的release
// NSLog(@"%@",self.window.subviews);
///透明度 ,范围0-1,默认是1,0是全透明效果
// view3.alpha =0.1;
///设置视图是否隐藏 hidden(隐藏的意思,1隐藏,0显示,默认0 ,1是Yes 0是NO)
// view3.hidden =YES;
///根据 tag值找对应的视图 默认0 tag 会设置1000以上
// view3.tag =1000;
// UIView *temp = [self.window viewWithTag:1000];
// NSLog(@"%@",temp);
///把 view3放到window上,我们管view3这种加到其他试图上德视图称为子试图,而被加上的试图称父视图,window就是父视图,view3就是子视图
/// 子视图的坐标和父视图的左上角有关,他是相对父视图而来的
/// 如果移动了父视图,子视图会和父视图一起移动
/// 任何视图都可以称为父视图,一个视图只能有一个父视图,但是可以有多个子视图
///调整层及关系
///把视图放到前面
[self.window bringSubviewToFront:view2];
///把视图放到最后面
[self.window sendSubviewToBack:view2];
///把视图移除掉
[view1 removeFromSuperview];
NSLog(@"%@",self.window.subviews);
/// 创建一个vc
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController =vc;
[vc release];
return YES;
}