在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,会使用递归查找,这样会很消耗资源.
- 欢迎各位一块学习,提高逼格!
-
也可以添加洲洲哥的微信公众号
更多消息
更多信iOS开发信息 请以关注洲洲哥 的微信公众号,不定期有干货推送: