UIView
来源:互联网 发布:网络知识竞赛2017平台 编辑:程序博客网 时间:2024/06/16 13:20
1.UIView
1.1.所有 UI 控件都继承自 UIView。
1.2.每一个 UIView 都是一个容器,可以容纳其他 UIView。其中容器视图被称为父视图,而被包含的视图或者控件被成为子视图或者子控件。
1.3.视图对应的文件通常是 storyboard 或者 xib 文件。在许多 iOS 应用程序中,通常不必为视图编写任何代码。
1.4.UIView 负责界面的显示。
1.5.常用属性:
superview
获得自己的父控件对象
subviews
获得自己的所有子控件对象
一个视图最多只能有一个父视图,一个视图可以有多个子视图。
frame
控件所在矩形框的位置和尺寸(以父控件的左上角为坐标原点)
bounds
控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x和y永远为0)
center
控件中点的位置(以父控件的左上角为坐标原点),通过center属性设置视图位置更加方便
用 frame 和 center 可以修改 UIView 的位置。
用 frame 和 bounds 可以修改 UIView 的尺寸。
通常,修改自身位置大小时使用 frame,而子视图(控件)在设置位置时,会相对父视图的 bounds 进行设置。
tag
控件的ID(标记),父控件可以通过tag来找到或区分子控件
tag 为一个整数,并且两个控件的 tag 默认为0,也可能相同。而在使用 tag 来找到或区分子控件时只会返回第一个与之相符的子控件。
transform
控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
UIView 一次只能应用一个形变属性
设置 transfrom 会改变 UIView 的 frame 属性,但不会改变 bounds 属性。
CGAffineTransformMakeRotate、CGAffineTransformMakeScale、CGAffineTransformMakeTranslation 相对 UIView 的初始状态进行形变
CGAffineTransformRotate、CGAffineTransformScale、CGAffineTransformTranslation 相对 UIView 的当前状态进行形变
1.6.动画
1.6.1.UIView 封装的简单动画效果
1
2
3
4
5
6
[UIView beginAnimations:nilcontext:nil];
// 设置动画持续时间
[UIView setAnimationDuration:.3];
// 需要动画的代码段
// ... ...
[UIView commitAnimations];
1.6.2.UIView 封装的三个 block 动画方法
1
2
3
4
5
6
//1
[UIView animateWithDuration:animations:]
//2
[UIView animateWithDuration:animations:completion:]
//3
[UIView animateWithDuration: delay: options: animations: completion:]
1.6.3.对比 beginAnimations 动画的方式,block 动画的优势:
可以在动画完成时做一些其他的任务
可以设置动画延迟及动画效果选项
block 动画支持嵌套
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIView
- UIVIew
- UIView
- UIView
- 集合中的接口使用方法
- UVA540Team Queue(队列)
- Loadrunner重要概念——集合点
- 【PAT】1040. 有几个PAT(25)
- How browsers work<一>介绍
- UIView
- 最基本的百度地图SDK用法
- ssh整和hibernate时出现错误(一)
- 大数据应用与医学检验平台结合(论文)
- memset in C++ and C
- UITextField 限制输入字数
- stanford-NLP-CLASS1课堂笔记
- C++学习笔记51——在构造函数和析构函数中调用虚函数
- mysql Access denied for user 'root'@'localhost' (using password:NO)解决方案