UIView详解之二:视图的外观

1、背景颜色、透明度以及是否隐藏

@property(nullable,nonatomic,copy)UIColor*backgroundColor;

@property(nonatomic)CGFloatalpha;

@property(nonatomic,getter=isHidden)BOOL              hidden;

背景颜色属性BackgroundColor属性是UIView类中最长使用的属性之一,由于UIView是一个矩形区域,所以在实际的开发过程中,常常通过设置视图的背景颜色来检查视图的大小以及位置。

透明度alpha属性可以修改视图的透明度,可以实现一些虚化的效果,在一些游戏App中,游戏的按钮经常是虚化的效果。需要注意的是对于UIView以及其子类,当alpha的值小于等于0.01时,就不能够再响应用户交互了,例如:UIButton就不能够点击了。

是否隐藏hidden能够控制视图的显示与隐藏。

2、Frame/Bounds/Center

@property(nonatomic)CGRectframe;

@property(nonatomic)CGRectbounds;

@property(nonatomic)CGPointcenter;

Frame、Bounds以及Center是用来设置视图对象位置以及大小的属性,在对任何视图类对象进行初始化之后,建议大家紧接着就要去设置视图对象的Frame属性。在学习过程中,Frame、Bounds以及Center的区别和联系是比较难以理解的,主要是对视图的坐标系要有深刻理解,但对于初学者来说,可以记住如下要点即可:

绝对坐标系:屏幕的左上角是坐标原点(0,0);横向为X轴,纵向为Y轴;向左边移动X值减小,向右边移动X值增加;向下边移动Y值增加,向上边移动Y值减小;

每个视图的起始位置和大小由Frame来确定,frame是一个CGRect类型的属性,CGRect是一个结构体,里面有两个变量origin和size,其中origin是一个CGPoint点,指的是视图左上角的那个点的位置,决定了视图的位置;size是CGSize类型的,决定了视图的大小;

Frame:视图在其父视图坐标系中的位置和大小,建议大家在控件初始化之后,紧接着就去设置Frame,设置完成后,假如涉及到修改控件的位置、大小等,就不要再去修改Frame了;

Bounds:视图在其自己的坐标系中的位置和大小。Bounds属性中,视图的bounds.origin始终是(0,0),因此bounds属性最核心的作用是设置视图的大小,即bounds.size,当需要去修改视图大小的时候,可以修改bounds.size;

Center:视图中心点在父视图坐标系中的坐标,当需要修改视图对象的位置时,可以修改Center属性。

UIView详解之二:视图的外观_第1张图片

-(void)viewDidLoad{

[superviewDidLoad];

//添加view1到控制器视图self.view

UIView*view1=[[UIViewalloc]init];

view1.frame=CGRectMake(100,100,200,200);

view1.backgroundColor=[UIColoryellowColor];

[self.view addSubview:view1];

NSLog(@"view1.frame:%@",NSStringFromCGRect(view1.frame));

NSLog(@"view1.bounds:%@",NSStringFromCGRect(view1.bounds));

NSLog(@"view1.center:%@",NSStringFromCGPoint(view1.center));

//添加view2到控制器视图self.view

UIView*view2=[[UIViewalloc]init];

view2.frame=CGRectMake(0,0,100,100);

view2.backgroundColor=[UIColorredColor];

[self.view addSubview:view2];

NSLog(@"view2.frame:%@",NSStringFromCGRect(view2.frame));

NSLog(@"view2.bounds:%@",NSStringFromCGRect(view2.bounds));

NSLog(@"view2.center:%@",NSStringFromCGPoint(view2.center));

//添加View3到View1

UIView*view3=[[UIViewalloc]init];

view3.frame=CGRectMake(0,0,100,100);

view3.backgroundColor=[UIColorblueColor];

[view1 addSubview:view3];

NSLog(@"view3.frame:%@",NSStringFromCGRect(view3.frame));

NSLog(@"view3.bounds:%@",NSStringFromCGRect(view3.bounds));

NSLog(@"view3.center:%@",NSStringFromCGPoint(view3.center));

}

你可能感兴趣的:(UIView详解之二:视图的外观)