首先创建一个window
//创建一个Window,window是一个属性
// 以UI开头,自己的类里面操作自己的属性用self
// 创建一个window,创建的过程跟之前一样,用alloc进行创建,并且需要给window一个尺寸
// 尺寸和屏幕一样大
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 给window设置一个背景颜色
//getter方法 setter方法
self.window.backgroundColor = [UIColor whiteColor];
// 把window设置成可见
[self.window makeKeyAndVisible];
// 对window进行释放
[_window release];
之后创建一个view
// UIView
// 1.通过自定义初始化方法创建一个UIView对象
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
// 2.设置背景颜色
view1.backgroundColor = [UIColor cyanColor];
// 3.把view放到window上
[self.window addSubview:view1];
// 4.内存管理
[view1 release];
UIView的属性
// 属性
// 透明度,范围是0-1,默认是1,0是全透明效果
// view1.alpha = 0.5;
// 设置视图是否进行隐藏,是BOOL类型,默认是NO
// view1.hidden = NO;
// view1.tag = 1000;
// // 根据tag找对应的视图
// 默认是0,一般为了防止重复,tag会设置1000以上,
// UIView *temp = [self.window viewWithTag:1000];
// NSLog(@"%@", temp);
addSubview用数组保存子视图,所以使用add方法后,可以直接release
父视图通过一个数组subview来管理它所有的子视图,容器会改变对象的引用对数,计数+1,所以对象添加到父视图上之后就可以相应的release(前提是用alloc创建了对象)
把view放在window上,我们把view这种加到其他视图上的视图称为子视图,而被加上的视图称为父视图,window就是父视图
子视图的坐标起点和父视图的左上角有关,它就是相对父视图而来的
如果移动了父视图,子视图和父视图一起移动,任何视图都可以称为父视图,一个视图只能有一个父视图.但是可以有多个子视图
!!!!调整层级关系
把视图放在前面 bringSubviewToFront
[self.window bringSubviewToFront:view2];
把视图放在后面 sendSubviewToBack
[self.window sendSubviewToBack:view2];
从父视图上把视图移除
[view1 removeFromSuperview];