objective-c 逐幀動畫

//數組

//  ViewController.moop

//  逐幀動畫動畫

//spa

//  Created by DC017 on 15/12/22..net

//  Copyright © 2015 DC017. All rights reserved.3d

//orm


#import "ViewController.h"對象


@interface ViewController ()圖片

{ci

    NSMutableArray * muarray;

    UIImageView * imageView;

    UIImage * image;

    UIImage * imageII;

    CALayer * layer;

    int current;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    [self diYiZhong];

    [self diErZhong];

    

}

-(void)diYiZhong{

    muarray=[[NSMutableArray alloc]initWithCapacity:10];

    imageView=[[UIImageView alloc]initWithFrame:CGRectMake(40, 200, 298, 215)];

    [self.view addSubview:imageView];

    for(int i=1;i<=87 ;i++){

        image=[UIImage imageNamed:[NSString stringWithFormat:@"dazhao_%d",i]];

        [muarray addObject:image];

    }

 

    imageView.animationImages=muarray;//動畫數組

    imageView.animationDuration=0.02* [muarray count];//一秒顯示10

    imageView.animationRepeatCount=HUGE_VALF;//重複無線次

    [imageView startAnimating];

    

}

-(void)diErZhong{

    //建立圖層

    layer=[[CALayer alloc]init];

    layer.frame=CGRectMake(40, 400, 298, 215);

    

    [self.view.layer addSublayer:layer];

    

    //定義時鐘對象

    CADisplayLink * displayLink=[CADisplayLink displayLinkWithTarget:self selector:@selector(step)];

    //添加時鐘對象到主運行循環

    [displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

}

-(void)step{

    

    static int s=0;

    s++;

    if (s%1==0) {

        imageII=muarray[current];

        layer.contents=(id)imageII.CGImage;//更新圖片

        current=(current+1)%87;

        

    }

    

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end

相關文章
相關標籤/搜索