#import <QuartzCore/CALayer.h>
#import <Foundation/NSObject.h>
@class NSArray, NSString, CAMediaTimingFunction, CAValueFunction;
@interface CAAnimation : NSObject
<NSCoding, NSCopying, CAMediaTiming, CAAction>
{
@private
void *_attr;
uint32_t _flags;
}
+ (id)animation; // 创建动画
+ (id)defaultValueForKey:(NSString *)key;
- (BOOL)shouldArchiveValueForKey:(NSString *)key;
@property(retain) CAMediaTimingFunction *timingFunction;
@property(retain) id delegate; // 代理
@property(getter=isRemovedOnCompletion) BOOL removedOnCompletion; // 完成后是否回到原来的地方
@end
#pragma - mark - 代理方法
@interface NSObject (CAAnimationDelegate)
- (void)animationDidStart:(CAAnimation *)anim;
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;
@end
#pragma - mark - 属性动画,修改属性
@interface CAPropertyAnimation : CAAnimation
+ (id)animationWithKeyPath:(NSString *)path;
@property(copy) NSString *keyPath; // KVC的键
@property(getter=isAdditive) BOOL additive;
@property(getter=isCumulative) BOOL cumulative;
@property(retain) CAValueFunction *valueFunction;
@end
@interface CABasicAnimation : CAPropertyAnimation
#pragma - mark toValue是最终的值,byValue是在原来基础上增加的值
@property(retain) id fromValue, toValue, byValue;
@end
#pragma - mark - 关键帧动画,根据path一帧一帧的放动画
@interface CAKeyframeAnimation : CAPropertyAnimation
@property(copy) NSArray *values; // 所有的取值
@property CGPathRef path; // 指定动画的路径,会忽略设置的values, 锚点始终在路径上
@property(copy) NSArray *keyTimes; // 时间数组
@property(copy) NSArray *timingFunctions; // 时间函数
@property(copy) NSString *calculationMode;
@property(copy) NSArray *tensionValues, *continuityValues, *biasValues;
@property(copy) NSString *rotationMode;
@end
CA_EXTERN NSString * const kCAAnimationLinear
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCAAnimationDiscrete
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCAAnimationPaced
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCAAnimationCubic
__OSX_AVAILABLE_STARTING (__MAC_10_7, __IPHONE_4_0);
CA_EXTERN NSString * const kCAAnimationCubicPaced
__OSX_AVAILABLE_STARTING (__MAC_10_7, __IPHONE_4_0);
CA_EXTERN NSString * const kCAAnimationRotateAuto
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCAAnimationRotateAutoReverse
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
#pragma - mark - 转场动画
@interface CATransition : CAAnimation
@property(copy) NSString *type; // 动画种类,主要是样式
@property(copy) NSString *subtype; // 子动画种类,主要是方向
@property float startProgress, endProgress;
@property(retain) id filter;
@end
CA_EXTERN NSString * const kCATransitionFade
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionMoveIn
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionPush
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionReveal
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromRight
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromLeft
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromTop
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromBottom
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
#pragma - mark -
@interface CAAnimationGroup : CAAnimation
@property(copy) NSArray *animations;
@end
CAAnimation.h
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 摘要: 动画效果可以给用户提供流畅的用户体验,在iOS系统中,Core Animation提供了一定的API来实现...
- 新爱莲说Hélène, je m'appelle Hélène/Hélène Rollès 蓍草填词/江北客@伏羲...