控件基本动画
1 #import "BasicViewController.h" 2 3 @interface BasicViewController () 4 //用来测试动画效果的一个视图 5 @property (weak, nonatomic) IBOutlet UIView *testView; 6 7 @end 8 9 @implementation BasicViewController 10 11 - (void)viewDidLoad { 12 [super viewDidLoad]; 13 14 15 } 16 #pragma mark - 动态的改变frame 17 - (IBAction)changeFrameAction:(UIButton *)sender { 18 //UIView动画起始于beginAnimation终止于commitAnimation 19 //第一步:开始设置UIView动画 20 [UIView beginAnimations:@"move" context:nil]; 21 //第二步:设置播放时长 22 [UIView setAnimationDuration:2]; 23 //第三步:设置UIView回调的对象(即代理) 24 [UIView setAnimationDelegate:self]; 25 //第四步:设置要改变的内容 26 self.testView.frame = CGRectMake(100, 100, 200, 100); 27 //第五步:提交动画效果 28 [UIView commitAnimations]; 29 30 31 } 32 - (IBAction)changeColor:(UIButton *)sender { 33 [UIView beginAnimations:@"颜色" context:nil]; 34 [UIView setAnimationDuration:2]; 35 [UIView setAnimationDelegate:self]; 36 self.testView.backgroundColor = [UIColor magentaColor]; 37 [UIView commitAnimations]; 38 } 39 - (IBAction)changeAlpha:(UIButton *)sender { 40 [UIView beginAnimations:@"alpha" context:nil]; 41 [UIView setAnimationDuration:2]; 42 [UIView setAnimationDelegate:self]; 43 self.testView.alpha = 0.5; 44 [UIView commitAnimations]; 45 } 46 - (IBAction)changeBounds:(UIButton *)sender { 47 [UIView beginAnimations:@"bounds" context:nil]; 48 [UIView setAnimationDuration:2]; 49 [UIView setAnimationDelegate:self]; 50 self.testView.bounds = CGRectMake(30, 40, 100, 100); 51 [UIView commitAnimations]; 52 } 53 //仿射翻转 54 - (IBAction)totationAction:(UIButton *)sender { 55 //第一步:开始动画 56 [UIView beginAnimations:@"仿射翻转" context:nil]; 57 //第二步:设置时长 58 [UIView setAnimationDuration:3]; 59 //第三步:设置淡入的效果 60 [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 61 //第四步:设置代理 62 [UIView setAnimationDelegate:self]; 63 //第五步:设置翻转的方向 64 [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.testView cache:YES]; 65 //第六步:提交 66 [UIView commitAnimations]; 67 68 } 69 - (IBAction)transformAction:(UIButton *)sender { 70 [UIView beginAnimations:@"仿射旋转" context:nil]; 71 [UIView setAnimationDuration:3]; 72 [UIView setAnimationDelegate:self]; 73 //设置旋转的度数 74 CGAffineTransform transform = CGAffineTransformMakeRotation(3 * M_PI); 75 //设置旋转对象 76 [self.testView setTransform:transform]; 77 [UIView commitAnimations]; 78 } 79 80 #pragma mark - UIViewAnimation的代理方法 81 -(void)animationWillStart:(NSString *)animationID context:(void *)context 82 { 83 NSLog(@"animationID = %@,context = %@",animationID,context); 84 } 85 86 -(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 87 { 88 NSLog(@"animationID = %@,context = %@",animationID,context); 89 }