zoukankan      html  css  js  c++  java
  • frame.bounds和center

    CGPoint point=CGPoint(x,y);  //表示位置

    CGSize size=CGSzieMake(width,height);  //表示大小

    CGRect rect=CGRectMake(x,y,width,height)

    1.frame:

    描述当前视图在其父视图中的位置和大小,用位置坐标和长度来表示:

    sample:

     

    UIButton *button3=[[[UIButtonalloc]initWithFrame:CGRectMake(120,120,100,100)]autorelease];

        button3.backgroundColor=[UIColorgreenColor];

        [self.view addSubview:button3];

        NSLog(@"the result is %f,%f,%f,%f",button3.frame.size.height,button3.frame.size.width,button3.frame.origin.x,button3.frame.origin.y);

    结果:

     

    the result is 100.000000,100.000000,120.000000,120.000000

    2. bounds  property

    描述当前视图在其自身坐标系统中的位置和大小。

    iphone中坐标系统的建立,最左上角是原点(0,0),向右为x轴递增,想下为y轴递减。

     

    ios采用CGPoint来表示点在坐标系上X、Y位置。我们可以通过CGPointMake(x,y)来创建一个坐标点:CGPoint point = CGPointMake(80,40)

    同时,ios采用CGSize来表示视图的宽度和高度,即视图的大小。我们可以通过CGSizeMake(width,height)来创建一个矩形的大小,如CGSize size = CGSizeMake(144,72)将创建一个宽度为144,高度为72的矩形大小。

    而CGRect则是结合了CGPoint和CGSize,用来表示矩形的位置和大小。它的origin表示矩形右上角所在位置(CGPoint),size表示矩形的大小(CGSize)。

    sample:

     

     

      UIButton *button3=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 100, 100)] autorelease];
        button3.backgroundColor=[UIColor greenColor];
        [self.view addSubview:button3];
        NSLog(@"the result is %f,%f,%f,%f",button3.frame.size.height,button3.frame.size.width,button3.frame.origin.x,button3.frame.origin.y);
        
        NSLog(@"the result is %f,%f,%f,%f",button3.bounds.origin.x,button3.bounds.origin.y,button3.bounds.size.height,button3.bounds.size.width);
    }

     

    3.center  property

    描述当前视图的中心点在其父视图中的位置。

    sample如下所示:

        UIButton *button3=[[[UIButton alloc] initWithFrame:CGRectMake(120, 120, 100, 100)] autorelease];
        button3.backgroundColor=[UIColor greenColor];
        [self.view addSubview:button3];
        NSLog(@"the result is %f,%f",button3.center.x,button3.center.y);
    

    result is:

     

    the result is 170.000000,170.000000

    4.frame.bounds 和center的区别和联系

    这两个属性都是用来描述视图的大小(CGSize)和位置(CGPoint)的,两者都用CGRect表示。不同的是,frame描述的是在其父视图中的CGRect,而bounds描述的是在其自身视图中的CGRect,

    center属性则用CGPoint表示矩形中心点在其父视图中的位置,frame、bounds和center三个属性是相互关联、相互影响的,其中一个属性发生变化,其他属性也会跟着变化。


  • 相关阅读:
    阿里巴巴数据库分库分表的最佳实践
    Tomcat控制台日志乱码解决方案
    区块链:多链体系在提升性能的同时,怎么去保证单链被攻击性问题
    在 CentOS 7 1801 中安装 PostgreSQL-11
    为什么即使现在生意不太好做,还是有一批批的人开始做生意?
    投资十几万可以做点什么生意?
    理发店真是一个暴利行业吗?
    今日头条是怎么盈利的?
    中国都有哪些著名的风投失败的案例?
    基于语音应用的10项最佳实践
  • 原文地址:https://www.cnblogs.com/james1207/p/3306401.html
Copyright © 2011-2022 走看看