記錄兩個比較簡單的動畫,一個是翻轉的動畫,一個是旋轉的動畫。
旋轉動畫:
1
[UIView animateWithDuration:3 animations:^{ if (formView) { formView.transform = CGAffineTransformMakeRotation(M_PI); } }];
2
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; //默認是順時針效果,若將fromValue和toValue的值互換,則為逆時針效果 animation.fromValue = [NSNumber numberWithFloat:0.f]; animation.toValue = [NSNumber numberWithFloat: M_PI *2]; animation.duration = 3; animation.autoreverses = NO; animation.fillMode = kCAFillModeForwards; animation.repeatCount = MAXFLOAT; //如果這里想設置成一直自旋轉,可以設置為MAXFLOAT,否則設置具體的數值則代表執行多少次 [formView.layer addAnimation:animation forKey:nil];
翻轉動畫:
1 圍繞中間軸翻轉
[UIView transitionWithView:formView duration:2.0f options:UIViewAnimationOptionTransitionFlipFromTop animations:^{ } completion:^(BOOL finished) { NSLog(@"圖像翻轉完成"); }];
2 翻頁,類似日歷的那種
//開始動畫 [UIView beginAnimations:@"doflip" context:nil]; //設置時常 [UIView setAnimationDuration:1]; //設置動畫淡入淡出 [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; //設置代理 [UIView setAnimationDelegate:self]; //設置翻轉方向 [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:formView cache:YES]; //動畫結束 [UIView commitAnimations];
3 翻頁 往上翻
[UIView beginAnimations:@"curlUp" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//指定動畫曲線類型,該枚舉是默認的,線性的是勻速的 //設置動畫時常 [UIView setAnimationDuration:1]; [UIView setAnimationDelegate:self]; //設置翻頁的方向 [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:formView cache:YES]; //關閉動畫 [UIView commitAnimations];
4 縮放動畫,直接在原來的基礎上進行縮放
CGAffineTransform transform; transform = CGAffineTransformScale(formView.transform,1.2,1.2); [UIView beginAnimations:@"scale" context:nil]; [UIView setAnimationDuration:2]; [UIView setAnimationDelegate:self]; [formView setTransform:transform]; [UIView commitAnimations];
5