UIView

来源:互联网 发布:有毒网络剧歌曲 编辑:程序博客网 时间:2024/05/19 17:23
概述: 
    UIView继承与UIResponder, 作为所有视图类的基类, 具有三个基本功能:图画和动画, 管理内容的布局, 控制事件交互.担当MVC中视图层的作用.同时作为一个高度可配置类类, 通常会通过子类化以实现更为丰富的功能或者界面现实.

1. 图画功能
1.1.1 可视化界面的自定义
常用的界面属性

backgroundColor背景颜色
hidden
alpha
opaque 
显示 或者隐藏
透明度 (当透明度为0 或者 视图为隐藏状态时, 视图将失去交互功能)
视图的是否是不透明的, (图形绘制时, 提升性能)
layer
layerClass
可用于动画
frame
bounds
center
transform
位置信息

    1.1.2 重绘功能

- (void)drawRect:(CGRect)rect   
- setNeedsDisplay


2. 动画
3. 管理内容的布局

子视图管理:
subview 获取本视图的所有子视图 存于数组中
· 描述视图是否显示
@property(nonatomic,readonly)UIWindow*window
(read-only)
This property is
nilif the view has not yet been added to a window

· - (void) bringSubviewToFront 将视图移动到最上层

· - (vid) sendSubviewToBack 将视图移动到最下层

· - (void)removeFromSuperview
If the view’s superview is not nil, the superview releases the view.

· - insertSubview:atIndex: 在父视图的某个位置插入子视图 从下标0 开始

· - insertSubview:aboveSubview: 将某个视图 插入到某个视图上方

· - insertSubview:belowSubView: 将视图插入到某个视图下方

· - xechangeSubviewAtIndex: withSubviewAtIndex: 使用下标交换两个视图的位置

· 属性  (BOOL)  判断当前视图对象是否时给定视图的子类
isDescendantOfView:(UIView *)

重新布局(适用于屏幕旋转)
通过重写- layoutSubviews 方法实现重新布局 其原理是在如下情况下 此方法会被触发调用:

触发机制  
1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

当然也可以通过方法()主动调用重新布局方法

0 0
原创粉丝点击