// Constants typedef enum { kUIAnimationCurveLinear, kUIAnimationCurveEaseIn, kUIAnimationCurveEaseOut, kUIAnimationCurveEaseInEaseOut } UIAnimationCurve; @interface UIAnimation : NSObject { } // Creating animations - (id)initWithTarget:(id)target; // Properties - (id)target; - (void)setDelegate:(id)delegate; - (id)delegate; - (void)setAction:(SEL)action; - (SEL)action; - (void)setAnimationCurve:(UIAnimationCurve)animationCurve; - (float)progressForFraction:(float)fraction; // Implemented by subclasses - (void)setProgress:(float)progress; // Controlling animations - (void)stopAnimation; @end // UIAnimator controls global animations @interface UIAnimator : NSObject { } + (id)sharedAnimator; + (void)disableAnimation; + (void)enableAnimation; - (void)addAnimation:(UIAnimation *)animation withDuration:(double)duration start:(BOOL)start; - (void)addAnimations:(NSArray *)animations withDuration:(double)duration start:(BOOL)start; - (void)removeAnimationsForTarget:(id)target; - (void)removeAnimationsForTarget:(id)target ofKind:(Class)classOfTarget; - (void)startAnimation:(UIAnimation *)animation; - (void)stopAnimation:(UIAnimation *)animation; - (float)fractionForAnimation:(UIAnimation *)animation; @end // Provided UIAnimation subclasses @interface UIAlphaAnimation : UIAnimation { } - (void)setStartAlpha:(float)alpha; - (void)setEndAlpha:(float)alpha; - (float)alphaForFraction:(float)fraction; @end @interface UIFrameAnimation : UIAnimation { } - (void)setStartFrame:(CGRect)frame; - (void)setEndFrame:(CGRect)frame; - (CGRect)endFrame; @end @interface UIRotationAnimation : UIAnimation { } - (void)setStartRotationAngle:(float)angle; - (void)setEndRotationAngle:(float)angle; @end @interface UIScrollAnimation : UIAnimation { } - (void)setStartPoint:(CGPoint)startPoint; - (void)setEndPoint:(CGPoint)endPoint; @end @interface UITransformAnimation : UIAnimation { } - (void)setStartTransform:(CGAffineTransform)transform; - (void)setEndTransform:(CGAffineTransform)transform; - (CGAffineTransform)transformForFraction:(float)fraction; @end @interface UIZoomAnimation : UIAnimation { } + (float)defaultDuration; + (id)zoomAnimationForTarget:(id)target endScale:(float)scale endScrollPoint:(CGPoint)point; + (id)zoomAnimationForTarget:(id)target focusRect:(CGRect)focusRect deviceBoundaryRect:(CGRect)deviceBoundaryRect scale:(float)scale; - (void)setEndScale:(float)scale; - (void)setStartScale:(float)scale; - (void)setEndScrollPoint:(CGPoint)point; - (void)setStartScrollPoint:(CGPoint)point; @end @interface UIView (Animation) + (void)beginAnimations:(NSArray *)animations; + (void)endAnimations; + (void)enableAnimation; + (void)disableAnimation; + (void)setAnimationAutoreverses:(BOOL)autoreverses; + (void)setAnimationCurve:(UIAnimationCurve)animationCurve; + (void)setAnimationDelay:(double)startDelay; + (void)setAnimationDelegate:(id)delegate; + (void)setAnimationDuration:(double)duration; + (void)setAnimationFrameInterval:(double)minimumTimeIntervalBetweenFrames; + (void)setAnimationFromCurrentState:(BOOL)shouldAnimateFromCurrentState; + (void)setAnimationPosition:(CGPoint)position; + (void)setAnimationStartTime:(double)startTime; + (void)setAnimationRepeatCount:(float)repeatCount; + (void)setAnimationRoundsToInteger:(BOOL)shouldRoundToInteger; + (void)setAnimationWillStartSelector:(SEL)willStartSelector; + (void)setAnimationDidStopSelector:(SEL)willEndSelector; - (void)addAnimation:(UIAnimation *)animation forKey:(NSString *)key; @end