UIView手册中的说明
来源:互联网 发布:mac air windows10 编辑:程序博客网 时间:2024/05/18 06:27
UIView类定义了一个屏幕上得矩形区域, 以及控制区域内部物件的接口. 在运行时, 一个视图负责渲染其区域内的所有物件,并且捕捉物件的响应.
UIView类会自动把矩形区域内部填充上自己的背景色.更复杂的构件可以通过继承UIView然后实现响应的绘制代码及时间处理代码.
UIKit框架包含了很多标准的UIView子类,比如button, 复杂的表.
只有UIView的对象是能看见的,所以很重要,主要负责以下功能:
绘图和动画:
使用UIKit, Core Graphics,和 OpenGL ES绘制矩形区域内部
有些属性可以渐变到新值.
控制图层及子视图:
一个视图可以有0到多个子视图
每个视图都有自身的默认相对尺寸, 与父视图有关
一个视图可以重定义其子视图的坐标及尺寸
事件处理:
视图是UIResponder的子类, 所以可以捕获并处理触碰,晃动事件.
一个视图可以通过addGestureRecognizer:方法来加载手势识别器来处理基本手势.
视图可以嵌入其它视图, 以此来实现复杂的视觉层级. 一般来说,子视图超出父视图的部分不会被裁减掉,但是在iOS中可以通过设置clipsToBounds属性来选择怎么办.
一个视图的几何结构由frame,bounds和center属性决定
创建一个视图:
在iOS中,姊妹视图可以覆盖彼此,所以会由复杂的视图层次.后添加的视图会遮盖先添加的视图.通过一些方法可以改变这种层次关系.
当创建一个新的视图的时候,需要给视图的autoresizingMask属性设置一个合适的值,以确保视图能正确调整大小,视图的大小调整主要是由于设备方向改变了.setNeedsLayout方法也会强制视图更新图层.
视图的绘制循环:
视图只在需要的时候绘制.当一个视图第一次出现, 或者当一个视图的一部分因为图层关系改变而变得可见时, 视图会绘制包含的物件.
对于只包含内置构件的视图(基于UIKit或者Core Graphics), 绘制时会调用drawRect:方法.对于这个方法的实现, 要保证绘制视图的物件到当前图形环境中, 一般drawRect由系统提前调用. 这样就在视图出现前完成了静态可见部分的构造.
当视图的内容发生变化时,需要通过调用setNeedsDisplay 或者 setNeedsDisplayInRect 方法重新绘制相关区域. 以上方法会使系统在下一个绘制循环中重绘视图的内容.
提示:
如果是使用OpenGLES 绘制的内容, 就需要使用GLKView 类代替UIView类.
动画效果:
视图属性的变化过程可以设置为动画效果. 如欲设置需要指出哪个变化需要动画显示.有两种方法设置动画效果:
1. 在iOS4以后, 可以使用动画效果块函数.
2.使用begin/commit 动画方法.
基于块的动画函数(animateWithDuration:animations:)大大简化了动画效果的设置难度.只要指定了展示的动画效果及其选项,就可以在方法调用时实现相应效果.但是只能在iOS4.0以后使用.否则就得使用beginAnimations:context: 和 commitAnimations 类方法来标记动画的开始及结束.
以下视图的属性改变是可以动漫化的:
@property frame
@property bounds
@property center
@property transform
@property alpha
@property backgroundColor
@property contentStretch
多线程:
对视图的操作都应该在主线程中进行,唯一的例外是视图对象的初始化
继承:
UIView是可视化物件的关键继承节点. 继承时需要调节很多表现.
需要重写的方法:
初始化:
initWithFrame: 推荐子类重写这个方法来实现初始化
initWithCoder: 如果子类需要从IB nib 文件初始化,需要重写这个方法
layerClass
绘制:
drawRect: 需要绘制内容时才重写这个方法
图层:
sizeThatFits: 如果视图需要一个合适尺寸就重写
layoutSubviews
didAddSubview: , willAddSubview:
willMoveToSuperview: , didMoveToSuperview跟踪视图的图层变化
willMoveToWindow: , didMoveToWindow
事件捕获:
touchesBegan:withEvent: touchesMoved:withEvent: touchesEnded:withEvent:
touchesCancelled:withEvent:
- UIView手册中的说明
- Hudson安装说明手册
- vi操作说明手册
- man 手册文件说明
- DWZ手册补充说明
- Swiper说明&&API手册
- Twig中文说明手册
- Swiper说明&&API手册
- Twig中文说明手册
- Swiper说明&&API手册
- devstack配置说明手册
- Devstack 配置文件说明手册
- cmake参数说明手册
- UIView中的常用方法
- Iphone中的UIView开发
- UIView中的autoresizingMask属性
- UIView中的drawRect方法
- UIView中的常用方法
- C语言平面几何4-两线段是否相交
- HTML中meta标签
- ASCII Cam
- 第十七周 项目2--采用引用类型做参数排序三个数
- solr 层面搜索
- UIView手册中的说明
- 线程demo2
- 将字符串str1复制为字符串str2
- 奇数因子
- FreeBSD之netgraph简要解析(备份)
- DiskFileItemFactory类
- 二叉树的构建及各种遍历
- I/O完成端口简单例子
- (Relax DP1.4)UVA 10648 Chocolate Box(求将n个巧克力放在m个盒子中的概率)