美文网首页
基础动画

基础动画

作者: 执着的小蛋挞 | 来源:发表于2016-09-12 16:19 被阅读30次

一、首尾式动画,渐变动画

// 1. 准备开始一个动画

[UIView beginAnimations:nil context:nil];

// 2. 修改控件属性的代码放在中间

// 3. 提交动画

[UIView commitAnimations];

// 4. 设置动画执行的时长

[UIView setAnimationDuration:1.0];

二、序列帧动画

//1.把所有需要的图片加载进一个临时数组

// imageNamed:这个方法初始化的图片会加载到内存到,并且一直不会释放掉

// imageWithContentsOfFile:这个方法初始化图片, 是从磁盘中加载图片.

// 2. 把这些图片一一播放

// 2.1 把要播放动画的图片全部放到animationImages

self.tom.animationImages = tmpImages;

// 设置动画播放次数

self.tom.animationRepeatCount = 1;

// 播放的时长

self.tom.animationDuration = count * 0.05f;

// 2.2 开始动画

[self.tom startAnimating];

//3.动画播放结束以后 清空指向数组

self.animationImages = nil;

[self setAnimationImages:nil];

[self performSelector:@selector(setAnimationImages:) withObject:nil];

/**

*  创建关键帧方法

*

*  @param duration  动画时长

*  @param delay      动画延迟

*  @param options    动画效果选项

*  @param animations 动画执行代码

*  @param completion 动画结束执行代码

*/

+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration

delay:(NSTimeInterval)delay

options:(UIViewKeyframeAnimationOptions)options

animations:(void (^)(void))animations

completion:(void (^)(BOOL finished))completion;

/**

*  添加关键帧

*

*  @param frameStartTime 动画相对开始时间

*  @param frameDuration  动画相对持续时间

*  @param animations    动画执行代码

*/

+ (void)addKeyframeWithRelativeStartTime:(double)frameStartTime

relativeDuration:(double)frameDuration

animations:(void (^)(void))animations;

三、块代码动画

方法一:

[UIView animateWithDuration:4.0 // 动画时长

animations:^{

// code

}];

方法二:

[UIView animateWithDuration:4.0 // 动画时长

animations:^{

// code...

}

completion:^(BOOL finished) {

// 动画完成后执行

// code...

}];

方法三:

[UIView animateWithDuration:4.0 // 动画时长

delay:2.0 // 动画延迟

options:UIViewAnimationOptionCurveEaseIn // 动画过渡效果

animations:^{

// code...

}

completion:^(BOOL finished) {

// 动画完成后执行

// code...

}];

方法四,Spring Animationring Animation:

[UIView animateWithDuration:4.0 // 动画时长

delay:0.0 // 动画延迟

usingSpringWithDamping:1.0 // 类似弹簧振动效果 0~1

initialSpringVelocity:5.0 // 初始速度

options:UIViewAnimationOptionCurveEaseInOut // 动画过渡效果

animations:^{

// code...

CGPoint point = _imageView.center;

point.y += 150;

[_imageView setCenter:point];

} completion:^(BOOL finished) {

// 动画完成后执行

// code...

[_imageView setAlpha:1];

}];

usingSpringWithDamping:它的范围为 0.0f 到 1.0f ,数值越小「弹簧」的振动效果越明显。

initialSpringVelocity:初始的速度,数值越大一开始移动越快。值得注意的是,初始速度取值较高而时间较短时,也会出现反弹情况。

/**

UIViewAnimationOptionCurveEaseInOut        动画刚开始和要结束的时候,是缓慢的

UIViewAnimationOptionCurveEaseIn            动画刚开始,是缓慢的

UIViewAnimationOptionCurveEaseOut          动画要结束的时候,是缓慢的

UIViewAnimationOptionCurveLinear          匀速

*/

---------------------------------------------

代码示例:https://github.com/tengcoding/TTAnimationDemo

相关文章

网友评论

      本文标题:基础动画

      本文链接:https://www.haomeiwen.com/subject/sgbjettx.html