您的位置:首页 > 移动开发 > Objective-C

objective-c 逐帧动画

2015-12-22 00:00 495 查看
//
// ViewController.m
// 逐帧动画
//
// Created by DC017 on 15/12/22.
// Copyright © 2015年 DC017. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
{
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: