本文代码都是使用MRC手动内存管理机制,出现错误,请把release方法删除,即可,你也可以手动管理内存.
//创建视图基本步骤
//1.分配内存空间大小,并且初始化设置视图大小
UIView *blue=[[UIView alloc]initWithFrame:CGRectMake(50, 275,280,125)];
//2.视图的基本设置,设置背景颜色
blue.backgroundColor=[UIColor blueColor];
//3.将视图添加到window上去
[self.window addSubview:blue];
//4.释放我们创建的对象
[blue release];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
frame是相对父视图来说的,相信大家都能够了解,所以在此不做过多解释
bounds(边界)是相对自身来说的,例如下例代码:
UIView *view=[[UIViewalloc]initWithFrame:CGRectMake(20, 20, 160, 160)];
view.backgroundColor=[UIColorblueColor];
[self.windowaddSubview:view];
UIView *view1=[[UIViewalloc]initWithFrame:CGRectMake(20, 20, 80, 80)];
view1.backgroundColor=[UIColorredColor];
//这里的0 0是相对原点
view.bounds=CGRectMake(0, 0, 160, 160);
[view addSubview:view1];
view蓝色区域是view1的父视图,view1是子视图,此时红色区域开始的位置(左上角)的点为(0,0)点,此时的bounds的 CGRectMake (0, 0, 160, 160)value值,0,0,代表为原点(0,0) (160,160)代表view的大小,此时,如果把(0,0)修改为(20,20),那么原来的(0,0)点就为(20,20),原点向左上移动了,所以图形也将会向左上方移动。如图。(切记:此时bounds是view的属性,如果改view1,他的大小和位置都不会发生变化。原因:自己sk。。。。
center(中心)的属性,是相对父视图来说的
UIView *yellow=[[UIViewalloc]initWithFrame:CGRectMake(50, 150,300, 300)];
yellow.backgroundColor=[UIColoryellowColor];
[self.windowaddSubview:yellow];
[yellow release];
UIView *pink=[[UIViewalloc]initWithFrame:CGRectMake(0, 0,250, 250)];
pink.backgroundColor=[UIColorpurpleColor];
pink.center=CGPointMake(150, 150); //150,150是父视图yellow的300,300的中心点
[self.window addSubview:pink];
[pink release];
UIView *blue=[[UIViewalloc]initWithFrame:CGRectMake(0, 0, 150,150)];
blue.backgroundColor=[UIColorblueColor];
blue.center=CGPointMake(125,125 );//(125,125 )是父视图pink的250,250的中心点
[pink addSubview:blue];
[blue release];