iOS-学习笔记-UI-第十九天
来源:互联网 发布:淘宝买家数据采集 编辑:程序博客网 时间:2024/05/22 14:23
回顾:
1. 代码实现自动布局
1)万能公式法
view1.attr1<relationship>view2.attri2*multiplier+constant
b1.right = view.right*1-20
2)VFL可视化格式语言法
|-20-[b1]=[b2(b1)]-[b3(b1)]-20|
V:|-20-[b1]
2. 动画
2.1 UIImage
2.2 NSTimer
2.3 UIView animate...
今天
1. Core Animation
1.1 是什么?
是一个图形渲染和动画的底层框架,用于iOS和Mac OS X
1.2 能干什么?
a.可以提供更多更强大的图形渲染效果
b.可以提供专业级别的动画效果
c.是高层图形技术的技术
1.3 如何使用Core Animation大部分功能封装到针对CALayer类型的对象操作中。
如何获取CALayer类型对象呢?
方法一:针对已经存在的UIKit的对象,通过layer属性获取到CALayer对象
UIView CALayer
frame frame
transform transform3D
autoResizing autoResizing
addSubView addSubLayer
方法二:直接新建CALayer对象
创建有图像内容的层
CALayer layer
创建有文字的层
CATextLayer layer
1.4 能够再界面上添加文字或图片的方法
在UIKit中,使用UIImageView UILabel
在Core Animation中,使用CALayer CATextLayer
在Core Graphics中,使用C函数可以实现
但是,所有绘图出现的效果,本质上都在依赖于Core Graphics来完成的
1.5 CAAnimation 动画
一个抽象的动画类型,用于对CALayer类型的对象添加动画效果,大部分情况不关心这个类,而是更多地使用它的子类CABasicAnimation CAKeyFrameAnimation
a)关键帧动画CAKeyFrameAnimation可以根据指定的路径进行动画
实现步骤:
step1:创建关键帧动画,使用animationWithKeyPath方法创建,同时这个方法需要一个字符串的参数,只能是以下三种之一:position transform opacity
step2:设置动画属性
step3:将动画添加到视图的layer上
b)基础动画(CABaicAnimation)
可以实现缩放 旋转 透明的动画效果
特点:设置动画的两个重要属性 fromValue 和 toValue
1.6 CATransform3D
是一个4X4的矩阵,一个结构体,描述3D图片变形的数据
对于CALayer类型的对象的transform属性就是CATransform3D类型的
如何变换?
CATransform3DMakeScale/Rotation/Translation
CATransform3DScale/Rotate/Translation
使用方式同CGAffineTransform
2. UIKit Dynamic 动力特效
2.1 是什么?
动力模型,从iOS7开始出现的技术,提供栏一个模拟真实世界中力学相关的动画和交互系统,比如:重力,碰撞,吸附等
2.2 结构
a. 核心部分 UIDynamicAnimator 力学的场景体系
b. 具体的力学行为
UI xx Behavior (行为)
包含以下行为:
UIGravityBehavior 重力行为
UICollisionBehavior 碰撞行为
UIAttachmentBehavior 吸附行为
UISnapBehavior 闪烁行为
UIPushBehavior 推力行为
UIDynamicltemBehavior 密度 摩擦力行为
2.3 练习
备注:
1.通过背景色为视图设置背景图
self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BackgroundTIle"]];
2.通过设定tintColor将图片渲染成不同的颜色
UIImageVIew *box = (UIImageView *)item;
box.tintColor = [UIColor redColor];
box.iamge = [box.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
- iOS-学习笔记-UI-第十九天
- iOS-学习笔记-UI-第十九天
- iOS-学习笔记-UI-第九天
- 第十九天学习笔记
- iOS-学习笔记-UI-第十天
- iOS-学习笔记-UI-第十一天
- iOS-学习笔记-UI-第十三天
- iOS-学习笔记-UI-第十五天
- iOS-学习笔记-UI-第十七天
- iOS-学习笔记-UI-第十八天
- UI第十九天:数据库
- 黑马程序员--- 学习笔记(第十九天)
- 第十九天:听课笔记
- 第十九天 笔记
- .net学习第十九天
- Java学习第十九天
- 第十九天学习记录
- Java学习第十九天
- zoj2412
- 黑马程序员---2015.6.26java基础笔记--File类--Properties--PrintStream--SequenceInputStream--RandomAccessFile
- WebView控件应用——模仿URL有道词典
- 为什么使用portlet?
- 金士顿KTD-INSP6000C/2G内存
- iOS-学习笔记-UI-第十九天
- 在Android APK中调用底层linux命令或者脚本
- JS Library Set
- springLdap 操作ldap示例(增删改查)
- 升级旧Delphi应用转向支持手机的一个思路
- 插入(+、-、空格)完成的等式:1 2 3 4 5 6 7 8 9=N
- 实战 SSH 端口转发
- ActiveMQ(三):使用Topic方式发送消息
- [Usaco2002 Open]Wiggle Numbers摆动数