#pragma mark - 动画效果
- (void)rotateAnimation {
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
// 动画速度 状态
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
/**
缓慢开始和结束
UIViewAnimationCurveEaseInOut
开始时 缓慢
UIViewAnimationCurveEaseIn
结束时缓慢
UIViewAnimationCurveEaseOut
一直很慢
UIViewAnimationCurveLinear
*/
// 持续时间
[UIView setAnimationDuration:1.0];
// 覆盖
// [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:_parentView cache:true];
// 翻页
// [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:_parentView cache:true];
// x 轴 旋转
// [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:_parentView cache:true];
// x 轴 逆向 旋转
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_parentView cache:true];
[UIView commitAnimations];
}
// 属性动画 frame的改变
[UIView beginAnimations:@"shuxingdonghua" context:nil];
// 2秒完成(设置动画的持续时间)
[UIView setAnimationDuration:2];
// 延迟1秒(动画延迟开始时间) 感觉没啥用
//[UIView setAnimationDelay:10];
//重复次数 INT_MAX 等同无限循环
[UIView setAnimationRepeatCount:INT_MAX];
//设置原路返回
[UIView setAnimationRepeatAutoreverses:YES];
//设置动画效果
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
//(一定要先设置代理) 否则不调用添加方法
[UIView setAnimationDelegate:self];
// 给动画开始的时候添加事件(没有打印 需要设置代理)
[UIView setAnimationWillStartSelector:@selector(startAnimation)];
// 开始动画其实就已经到这里了 到达的位置
self.button.center = CGPointMake(300, 100);
// 开始动画 其实不添加也能播放 但是还是添加吧
[UIView commitAnimations];
简单,易懂,方便用,
这是我的原则.
demo下载:http://pan.baidu.com/s/1ntQXqtF