IOS 多张图片切换渐变

首先介绍一下CATransition和CAMediaTimingFunction两个类:

CATransition

CATransition是CAAnimation的子类,主要用到了type属性

type是用于设置动画的过度方式,主要包括以下4个类型:

kCATransitionFade 淡入淡出的效果

kCATransitionMoveIn 移动效果

kCATransitionPush 推送效果

kCATransitionReveal 揭开的效果,将旧视图移开,显示新的视图。

CAMediaTimingFunction

他主要的作用是动画缓冲的作用

这里有一些方式来创建kCAMediaTimingFunctionLinear,最简单的方式是调用+timingFunctionWithName:的构造方法。这里传入如下几个常量之一:

kCAMediaTimingFunctionLinear 立即加速并且保持匀速到达终点

kCAMediaTimingFunctionEaseIn 慢慢加速然后突然停止的方法

kCAMediaTimingFunctionEaseOut 全速开始,然后慢慢减速停止

kCAMediaTimingFunctionEaseInEaseOut 慢慢加速然后再慢慢减速

kCAMediaTimingFunctionDefault 和kCAMediaTimingFunctionEaseInEaseOut很类似,但是加速和减速的过程都稍微有些慢,它和kCAMediaTimingFunctionEaseInEaseOut的区别很难察觉, 可能是苹果觉得它对于隐式动画来说更适合(然后对UIKit就改变了想法,而是使用kCAMediaTimingFunctionEaseInEaseOut作为默认效果),虽然它的名字说 是默认的,但还是要记住当创建显式的CAAnimation它并不是默认选项(换句话说,默认的图层行为动画用kCAMediaTimingFunctionDefault作为它们的计时方法)

示例代码:

CATransition *transition = [CATransition animation];

 transition.type = kCATransitionFade;

  transition.duration=0.8f;

 transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

 [image.layer addAnimation:transitionforKey:nil];

你可能感兴趣的:(IOS 多张图片切换渐变)