1. 程式人生 > >IOS 學習總結之動畫

IOS 學習總結之動畫

別人總結的一篇關於動畫的文章,感覺不錯,轉載一下

UIView的,翻轉、旋轉,偏移,翻頁,縮放,取反的動畫效果

翻轉的動畫
//開始動畫
    [UIView beginAnimations:@"doflip" context:nil];
//設定時常
    [UIView setAnimationDuration:1];
//設定動畫淡入淡出
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
//設定代理
    [UIView setAnimationDelegate:self];
//設定翻轉方向
    [UIView setAnimationTransition:
   UIViewAnimationTransitionFlipFromLeft  forView:manImageView cache:YES];
//動畫結束
    [UIView commitAnimations];



旋轉動畫

建立一個CGAffineTransform  transform物件
    CGAffineTransform  transform; 
//設定旋轉度數
    transform = CGAffineTransformRotate(manImageView.transform,M_PI/6.0);
//動畫開始
    [UIView beginAnimations:@"rotate" context:nil ];
//動畫時常
    [UIView setAnimationDuration:2];
//新增代理
    [UIView setAnimationDelegate:self];
//獲取transform的值
    [manImageView setTransform:transform];
//關閉動畫
    [UIView commitAnimations];



偏移動畫
[UIView beginAnimations:@"move" context:nil];
    [UIView setAnimationDuration:2];
    [UIView setAnimationDelegate:self];
//改變它的frame的x,y的值
    manImageView.frame=CGRectMake(100,100, 120,100);
    [UIView commitAnimations];

翻頁動畫
 [UIView beginAnimations:@"curlUp" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//指定動畫曲線型別,該列舉是預設的,線性的是勻速的
    //設定動畫時常
    [UIView setAnimationDuration:1];
     [UIView setAnimationDelegate:self];
    //設定翻頁的方向
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:manImageView cache:YES];
    //關閉動畫
    [UIView commitAnimations];


縮放動畫
CGAffineTransform  transform;
    transform = CGAffineTransformScale(manImageView.transform,1.2,1.2);
    [UIView beginAnimations:@"scale" context:nil];
    [UIView setAnimationDuration:2];
    [UIView setAnimationDelegate:self];
    [manImageView setTransform:transform];
    [UIView commitAnimations];

取反的動畫效果是根據當前的動畫取他的相反的動畫

CGAffineTransform transform;
    transform=CGAffineTransformInvert(manImageView.transform);
    
    [UIView beginAnimations:@"Invert" context:nil];
    [UIView setAnimationDuration:2];//動畫時常
    [UIView setAnimationDelegate:self];
    [manImageView setTransform:transform];//獲取改變後的view的transform
    [UIView commitAnimations];//關閉動畫