UI总结-UIView
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];
UIViewController *vc = [[UIViewController alloc]init];
self.window.rootViewController = vc;
[vc release];
//UIView表示屏幕上的一块矩形区域,几乎所有屏幕上能看到的元素都是UIView的或者他的子类
//UIView负责渲染矩形区域的内容,响应区域中的触摸事件,以及为矩形区域添加动画.
//UIWindow是iOS中的窗口类,主要负责管理和协调各个试图在设备屏幕上的展现.一个应用程序最好只有一个window
//window需要在APP启动的时候加载,window的尺寸要与屏幕大小一致.
//UIWindow继承于UIView
//创建一个新View
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(20, 20, 100, 100)];
//frame的坐标是相对于父试图而言的.
//bounds是相对自身坐标系
NSLog(@"aView bounds = %@",NSStringFromCGRect(aView.bounds));
NSLog(@"aView frame = %@", NSStringFromCGRect(aView.frame));
//UIView的属性
//背景颜色
aView.backgroundColor = [UIColor yellowColor];
//frame的中心坐标 center
aView.center = CGPointMake(70, 100);
//View的透明度改变 alpha
aView.alpha = 0.8;
//是否可以响应点击 userInteractionEnabled
aView.userInteractionEnabled = YES;
//是否可以隐藏 hidden
aView.hidden = NO;
//内容格式
aView.contentMode = UIViewContentModeScaleToFill;
[self.window addSubview:aView];
[aView release];
//View 的层级管理
//UIView的层级关系可以用树形结构来表述,每个View都是一个节点
//subview总是在superview之上,因为越晚加入的显示在上层.
//一个父试图可以有多个子试图,但每个子试图只能有一个父试图
//子试图的坐标是相对于自己的父试图的坐标系,所以在设置位置的时候一定要清楚,当前试图的父试图的位置.
//先被添加到数组的子试图,位置在最下面,而后添加的在层级的上方
//可以通过父试图来调整对应子试图的层级关系.
UIView *bView = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
bView .backgroundColor = [UIColor blueColor];
[aView addSubview:bView];
[bView release];
UIView *cView = [[UIView alloc]initWithFrame:CGRectMake(20, 10, 50, 50)];
[cView setBackgroundColor:[UIColor grayColor]];
[aView addSubview:cView];
[cView release];
//父试图改变一些属性会影响子试图的属性比如,alpha.hidden,frame 等
//父试图隐藏,子试图也跟着隐藏
aView.hidden = NO;
//如果子试图超出父试图的范围可以调用属性clipstobounds裁掉超出的部分
aView.clipsToBounds = YES;
//UIView的一些重要方法
//self.window insertSubview:<#(nonnull UIView *)#> aboveSubview:<#(nonnull UIView *)#>插入一个试图在某个试图的上面
//self.window insertSubview:<#(nonnull UIView *)#> atIndex:<#(NSInteger)#>插入一个试图在子试图的第几个
//self.window insertSubview:<#(nonnull UIView *)#> belowSubview:<#(nonnull UIView *)#>插入一个试图在某个试图的下面
//试图的整理
//self.window bringSubviewToFront:<#(nonnull UIView *)#>将某个试图放在父试图的最上方.
//self.window sendSubviewToBack:<#(nonnull UIView *)#>将某个试图放到父试图的最下方.
//self.window exchangeSubviewAtIndex:<#(NSInteger)#> withSubviewAtIndex:<#(NSInteger)#>交换试图的层级
[bView removeFromSuperview];//从父试图上移除该试图
return YES;
}