IOS 逐幀動畫

//數組

//  ViewController.moop

//  逐幀動畫動畫

//spa

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

//  Copyright © 2015 崔曉宇. All rights reserved.3d

//orm


#import "ViewController.h"對象


@interface ViewController ()圖片

{get

    NSMutableArray *_muArray;//存放動畫的全部圖片

    UIImageView *_imageView;//顯示動畫的區域

    UIImage *_image;//圖片

    

    CALayer *_layer;

    int current;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    _muArray = [NSMutableArray array];

    current = 0;

//    _imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 298, 215)];

//    [self.view addSubview:_imageView];

    

    //建立圖層

    _layer = [[CALayer alloc]init];

    _layer.frame = CGRectMake(0, 100, 298, 215);

    [self.view.layer addSublayer:_layer];

    

    

    

    //加載全部圖片

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

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

        [_muArray addObject:_image];

    }

    

    //定義時鐘對象

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

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

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

    

//    //設置動畫

//    _imageView.animationImages = _muArray;//動畫數組(包括全部動畫圖片)

//    _imageView.animationDuration = 0.05 * [_muArray count ];//110

//    _imageView.animationRepeatCount = HUGE_VALF;//無限次重複

//    [_imageView startAnimating];//開始動畫

    

    

}



- (void)step{

    static int s = 0;

    s++;

    if (s % 1 == 0) {

        UIImage *image = _muArray[current];

        _layer.contents = (id)image.CGImage;//更新圖片

        current = (current + 1) % 87;

    }

    


}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end

相關文章
相關標籤/搜索