关闭

iOS中UIView的用法(二)

标签: 对象多态ios开发uiview属性
287人阅读 评论(0) 收藏 举报
分类:


在ios中向控制器中添加一个控件都是继承自UIView的,反过来说就是,每个控件都是UIView的多态的表现形式.


总结如下:

1:每个UIView代表一个屏幕上得一个矩形区域


2:创建一个UIView

2.1首先UIView是一个类所以在声明的时候要在对应的对象前加一个"*"来表示声明的对象.

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, 20, 100, 100)];


 开辟内存空间,并初始化该view,并且初始化了该view的(x,y,w,h);

通常我不会去设置一个view的背景上,因为ie没个页面都回有自己的色调,背景色加上也可以的

2.2 将试图添加上控制器

 

[self.window addSubview:view1]

到了这里,即可完成向控制中添加UIView.这里的addSubView就是把一个UIView类型的对象添加到另外一个view中,可以是父类的也可以是同类的.

2.3 释放对象

如果选中了arc模式为No我们这里就要选择区手动释放对象

[view release]



3:关于UIView的属性

   3.1 最重要的也是最常见的 frame

 

应为会决定视图的位置和大小.绘制了一张图来具体看一下frame的结构


  总结:------

由上图可见,他们都是结构体类型的,所有在声明的时候不用在对象前加上"*",并且都是相对于父视图的.

在此处调用的时候用法

frame.orgin.x  \  frame.orgin.y

frame.size.width \ frame.size.y



3.2 设置bounds

 /**
     *  设置bounds
     */
    
    CGRect rect = CGRectMake(10, 10, 100, 100);
    
    [view1 setBounds:rect];
同理可设置frame

[view1 setFrame:rect];

bounds是边界,

(

他的不同之处在与 在设置了自己bounds之后会把自己当成一个容器,  用于定义自己的边界和坐标原点.一定不是frame.

当有子视图添加到设有bounds的视图时,会根据bounds制定的原点(0,0)计算frame,而不是左上角.


-------而此时的原点就是本身的左上角为(0,0);


 )!!!!!!!

重新定义原点,重新计算

3.3 添加视图的方法如下图



这里的addsubview像控制器中添加控件是最常用的方法,有时会调整控件的前后位置,会用到insertsubview:abovesubview和bringsubviewtofront的功能相同

3.4 管理视图层次的方法 如下图


bringsubviewtofront是最常用的


3.4视图的重要属性


alpha

控制透明度,在以后的动画转场的时候,透明度是一个很重要的效果控制单元.


tag

在开发过程中尽量避免使用tag,应为在使用tag的时候,控制器会先去遍历该控制器的子控件,然后在会查找控件的tag,会使用递归查找,这样会很消耗资源.


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:61965次
    • 积分:1580
    • 等级:
    • 排名:千里之外
    • 原创:98篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    最新评论