美文网首页
UIView详解之二:视图的外观

UIView详解之二:视图的外观

作者: 赵亦晨 | 来源:发表于2016-11-08 16:30 被阅读0次

    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属性。

    -(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详解之二:视图的外观

          本文链接:https://www.haomeiwen.com/subject/kmnauttx.html