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视图的frame、bounds、center、position、anchorPosition等与位置、大小有关的属性

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

视图UIView的frame、bounds与center属性

UIView类中定义了三个属性,分别是frame、bounds与center属性: @property(nonatomic) CGRect frame; @property(nonatomic) C...
  • pucker
  • pucker
  • 2012年06月05日 16:05
  • 16890

iOS开发UI篇—手写控件,frame,center和bounds属性

文章来源:http://www.cnblogs.com/wendingding/p/3742073.html iOS开发UI基础—手写控件,frame,center和bounds属性 ...

ios-坐标系统(详解UIView的frame、bounds跟center属性[图])

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

ios-坐标系统(详解UIView的frame、bounds跟center属性[图])

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

ios-坐标系统(详解UIView的frame、bounds跟center属性[图])

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

iOS之旅--使用控件的属性frame、center、bounds

属性使用总结frame: 是 CGRect 格式,struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoi...

iOS开发之UI基础--纯代码控件.frame,center,bounds属性

一、手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单...
  • l_511
  • l_511
  • 2015年09月01日 23:11
  • 208

在IOS开发中三个基本属性frame、bounds和center的解惑

本文介绍了常用的三个属性,解释了bounds的特性,更正了网络上不正确的说法。分享给大家。...

iOS 基础篇3—手写控件,frame,center和bounds属性

一、手写控件1.手写控件的步骤 使用相应的控件类创建控件对象 设置该控件的各种属性 添加控件到视图中 如果是button等控件,还需考虑控件的单击事件等 注意:View Contollor和view的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS之 view视图的创建和它的Frame、bounds、center属性
举报原因:
原因补充:

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