第一種:
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:kDuration];//動畫時間
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];//第一個參數(shù):動畫類型
NSUInteger green = [[self.view subviews] indexOfObject:self.greenView];
NSUInteger blue = [[self.view subviews] indexOfObject:self.blueView];
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];
[UIView setAnimationDelegate:self];
// 動畫完畢后調(diào)用某個方法
//[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
[UIView commitAnimations];
第二種:
CATransition *animation = [CATransition animation];
animation.delegate = self;
animation.duration = kDuration;
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.type = kCATransitionFade;//動畫類型
animation.subtype = kCATransitionFromLeft;//動畫方向
NSUInteger green = [[self.view subviews] indexOfObject:self.greenView];
NSUInteger blue = [[self.view subviews] indexOfObject:self.blueView];
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];
[[self.view layer] addAnimation:animation forKey:@"animation"];
動畫類型還有:
1.2.用字符串表示
2.? ? pageCurl? ? ? ? ? ? 向上翻一頁
3.? ? pageUnCurl? ? ? ? ? 向下翻一頁
4.? ? rippleEffect? ? ? ? 滴水效果
5.? ? suckEffect? ? ? ? ? 收縮效果译蒂,如一塊布被抽走
6.? ? cube? ? ? ? ? ? ? ? 立方體效果
7.? ? oglFlip? ? ? ? ? ? 上下翻轉(zhuǎn)效果
8.? ? cameraIrisHollowOpen? iphone相機打開效果
9.? ? cameraIrisHollowOpen 關(guān)閉相機的效果
10.*/
第三種:
[UIView animateWithDuration:1 animations:^{
[[self.view.subviews objectAtIndex:0] setAlpha:1];
[[self.view.subviews objectAtIndex:1] setAlpha:0];
NSUInteger green = [[self.view subviews] indexOfObject:self.greenView];
NSUInteger blue = [[self.view subviews] indexOfObject:self.blueView];
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];
}];
還有其他類型的調(diào)用方法表牢,這個是最簡單的,可以加上其他的參數(shù)進(jìn)行一些操作礁芦。
第二個參數(shù)是一個代碼快,來執(zhí)行VIEW的屬性改變叙量,系統(tǒng)會將視圖從當(dāng)前狀態(tài)平滑的過度到最終狀態(tài)(就是你做修改之后的狀態(tài))信轿。
可以被改變的屬性有:
frame
bounds
center
transform //可以實現(xiàn)3D/2D效果
alpha
backgroundColor
contentStretch
比如 self.view.layer.transform = CATransform3DMakeRotation(1, -1, -1, 1); 可以在代碼中將整個VIEW動畫旋轉(zhuǎn)(這里只是一個例子,有效果缝彬,但是不怎么好看)
上面是3D變化,如果是2d的哺眯,那么就應(yīng)該修改view上的transform 谷浅,而不應(yīng)該按照上面的代碼。