iOS之 view视图的创建和它的Frame、bounds、center属性

原创 2015年11月19日 08:21:21

本文代码都是使用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];

注意;这个是在代理类appDelegate.m文件中的

- (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];


iOS开发总结之 view的frame、center和和view的bounds之间的区别

iOS开发总结之 view的frame、center和和view的bounds之间的区别
  • sunnyboy9
  • sunnyboy9
  • 2016年04月28日 21:23
  • 398

详解UIView的frame、bounds和center属性

1、概要 翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下: frame:描述当前视图在其父视图中的位置和大小。 bounds:描述当前视图在其自身坐标系统中的位置和大小。...
  • muyu114
  • muyu114
  • 2012年04月06日 10:15
  • 10230

oc 控件视图旋转以及frame的变化

有这样的的一个VIew 点击Button后进行45度的旋转。 两种方式都可以     NSLog(@"self.view2.frame - x - %f y -%f w -%f d -%f",se...
  • li198847
  • li198847
  • 2016年05月26日 14:57
  • 951

Transform 与Frame、bounds的个人总结

Transform的使用 frame:  位置和尺寸 bounds 尺寸 center 位置 transform  位置/尺寸/旋转角度/ 利用transform 进行 按钮的操作。 self.v...
  • cl123cpzaihu
  • cl123cpzaihu
  • 2015年01月13日 16:11
  • 310

iOS开发——frame和bounds详解

在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念,而很多开发者在实际项目中也很少去区分,因此会导致出现一些意想不到的问题。本篇博客以实际代码的方式来学习frame和bounds的...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2016年06月26日 23:00
  • 5117

iOS frame\center\bounds属性

1.frame:控制位置和大小 center:控制位置(中心点) bounds:控制大小(以自己的左上角为原点) 2.可以通过以下属性修改控件的位置 frame.origin c...
  • github_26672553
  • github_26672553
  • 2015年08月05日 14:27
  • 226

iOS frame与bounds区别详解

转自 http://blog.csdn.net/chenyufeng1991/article/details/51764303 在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念...
  • chy555chy
  • chy555chy
  • 2016年06月28日 16:04
  • 1636

综述iOS视图的frame、bounds、center、position、anchorPosition等与位置、大小有关的属性

在iOS开发开发过程中经常会用到界面元素的frame、bounds表示大小和位置的属性以及center、position、anchorPosition等单纯表示位置的属性。这些属性究竟什么含义?彼此间...
  • E20914053
  • E20914053
  • 2015年11月20日 18:08
  • 1457

ios,关于bounds,frame,修改bounds…

遇到一个fram和bounds的区别,网上很多都是说了一些其他的,没有说修改bounds的同时,修改大小。自己去研究了一下,发现bounds的其中的问题,在此记录。     UIView *view...
  • zhdzxc123
  • zhdzxc123
  • 2016年05月26日 13:12
  • 265

ios 通过设置UI控件的center和size来设置位置时需注意!

今天在设置按钮位置时,使用center和size属性来控制,但是发现怎么也不对,研究了一下发现,当使用UI控件的center和size属性来控制位置时,好像是有先后顺序的: 下面看一段代码,将红色的v...
  • Make___
  • Make___
  • 2015年06月17日 15:42
  • 5040
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS之 view视图的创建和它的Frame、bounds、center属性
举报原因:
原因补充:

(最多只允许输入30个字)