你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> CATransition完成幾種動畫效果

CATransition完成幾種動畫效果

編輯:IOS開發綜合
.h:   @interface XXXViewController : UITViewController {  int direction; BOOL isBlue; } .m:     頭部導入: #import <QuartzCore/QuartzCore.h>     - (void)viewDidLoad {     [super viewDidLoad];   direction = 0; isBlue = YES;   UISegmentedControl *sc = [[UISegmentedControl alloc] initWithItems:[@"Ripple Curl Uncurl Suck"componentsSeparatedByString:@" "]]; sc.segmentedControlStyle = UISegmentedControlStyleBar; sc. selectedSegmentIndex = 0; self.navigationItem.titleView = [sc autorelease];   UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 240)]; bgView.backgroundColor = [UIColor lightGrayColor]; bgView.tag = 150;   UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImageimageNamed:@"BFlyCircle.png"]]; [bgView addSubview:imgView]; imgView.tag = 151; imgView.center = CGPointMake(150, 120);   UIImageView *imgView2 = [[UIImageView alloc] initWithImage:[UIImageimageNamed:@"BFlyCircleMaroon.png"]]; [bgView addSubview:imgView2]; imgView2.tag = 152; imgView2.center = CGPointMake(150, 120);   UIButton *startBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [startBtn setTitle:@"開始" forState:UIControlStateNormal]; startBtn.frame = CGRectMake(120, 260, 80, 25); [startBtn addTarget:self action:@selector(startAction:)forControlEvents:UIControlEventTouchUpInside];   [self.view addSubview:bgView]; [self.view addSubview:startBtn]; }       - (void) startAction:(id) sender{ // 定義動畫 CATransition *animation = [CATransition animation]; animation.delegate = self; animation.duration =1.0f; animation.timingFunction = UIViewAnimationCurveEaseInOut;     //可根據需要,設置type和subtype屬性產生不同的動畫效果   //animation.type = kCATransitionPush; //animation.type = kCATransitionMoveIn; //animation.type = kCATransitionReveal; //animation.type = kCATransitionFade;   //animation.subtype = kCATransitionPush; //animation.subtype = kCATransitionMoveIn; //animation.subtype = kCATransitionReveal; //animation.subtype = kCATransitionFade;       switch ([(UISegmentedControl *)self.navigationItem.titleView selectedSegmentIndex]) { case 0: animation.type = @"rippleEffect"; //animation.type = @"cube";  //立方體翻轉 //animation.type = @"oglFlip";  //層翻轉 //animation.type = @"cameraIrisHollowClose"; //animation.type = @"cameraIrisHollowOpen"; break; case 1: animation.type = @"pageCurl"; break; case 2: animation.type = @"pageUnCurl"; break; case 3: animation.type = @"suckEffect"; break; default: break; }     switch (direction) {    //方向 case 0: animation.subtype = kCATransitionFromRight; break; case 1: animation.subtype = kCATransitionFromTop; break; case 2: animation.subtype = kCATransitionFromLeft; break; case 3: animation.subtype = kCATransitionFromBottom; break; default: break; }   //執行動畫 UIView *bgView = [self.view viewWithTag:150]; NSInteger front = [[bgView subviews] indexOfObject:[bgView viewWithTag:151]]; NSInteger back = [[bgView subviews] indexOfObject:[bgView viewWithTag:152]]; if (isBlue) { [bgView exchangeSubviewAtIndex:front withSubviewAtIndex:back];  //圖形變換 }else { [bgView exchangeSubviewAtIndex:back withSubviewAtIndex:front]; }     [[bgView layer] addAnimation:animation forKey:@"animation"];     //bgView層執行動畫 //[[self.view layer] addAnimation:animation forKey:@"animation"];  //self.view層執行動畫   if(++direction > 3) direction -= 4; isBlue = !isBlue; }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved