#import <UIKit/UIKit.h>
@interface AppDelegate :UIResponder <UIApplicationDelegate>
@property (strong,nonatomic) UIWindow *window; //该属性创建时,系统以写好
@end
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)dealloc
{
// 一个被retain特性修饰的属性,需要在dealloc中进行release操作
[_windowrelease];
[superdealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 创建一个window对象,让window和屏幕一样大
self.window = [[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]];
// Override point for customization after application launch.
// 改变window的颜色为白色
self.window.backgroundColor = [UIColororangeColor];
// 将window设置为app的主window并且可见
[self.windowmakeKeyAndVisible];
// 内存管理
[_windowrelease];
// UIView
//所有控件类的基类
//规定了所有控件的基本行为和属性
//代表屏幕上的一块矩形区域
//学习一个新类的步骤:
// 1.看继承关系
// 2.这个类有没有初始化方法或者遍历构造器
//创建一个Vie
//创建一个矩形的View,用系统的初始化方法,对四个结构体的成员变量进行赋值
UIView *aView = [[UIViewalloc] initWithFrame:CGRectMake(0,0, 100, 100)];
// 改变view的颜色
aView.backgroundColor = [UIColorredColor];
//把view加到window上,让view在window上显示
//一个视图对应着一个父视图,对应多个子视图(subview),任何一个视图都可以成为其他视图的父视图
//父视图通过数组来管理自身的子视图
[self.windowaddSubview:aView]; //先添加到数组Subview中,是引用计数+1,再释放
//内存管理
[aViewrelease];
UIView *bView = [[UIViewalloc] initWithFrame:CGRectMake(50,50, 100, 100)];
bView.backgroundColor = [UIColorblueColor];
[self.windowaddSubview:bView];
[bViewrelease];
// 视图的层级关系
// 1.是一个树形关系(树状结构)
// 2.父视图和子视图是相对而言的,一个视图最多只有一个父视图,但是可以有很多子视图
// 3.一个视图的所有子视图,先加的view在层次关系的最下面,后加的view在上面
// 4.一个视图会对自己的子视图有所有权,可以随意调整子视图顺序
// 5.从父视图移除是子视图来调用方法
// 6.子视图的坐标(位置)是以父视图的坐标系为基准设置
//将某个子视图放到最下面
// [self.window sendSubviewToBack:bView];
//bView从父视图移除
// [bView removeFromSuperview];
UIView *cView = [[UIViewalloc] initWithFrame:CGRectMake(0,0, 80, 80)];
cView.backgroundColor = [UIColorcyanColor];
[bViewaddSubview:cView];
[cViewrelease];
// 视图的相关属性
// 1.frame : 控制view的位置大小,任何时候赋值都会有相应的改变
bView.frame =CGRectMake(200,100, 100, 300);
// 2.center :
bView.center =CGPointMake(100,300);
// 3.alpha : 透明度(0-1)
bView.alpha =1;
// 4.hidden : 隐藏(YES)/显示(NO)
bView.hidden =NO;
// 5.tag : 标签
//方便父视图快速找到子视图
//tag值默认是0,父视图会根据tag值找到对应的视图,从自身开始搜索,直到搜到对应的tag的视图,tag值的设置最好大一点,不能重复,相当于数据库的主键
bView.tag =1000;
//通过这个方法找子视图
UIView *rView = [self.windowviewWithTag:1000];
rView.backgroundColor = [UIColorblackColor];
//让一个view只显示自己内部的内容,超出部分不显示
bView.clipsToBounds =YES;