IOS--UIImageView--帧动画

帧动画

  • 由于没有学习gif的制作,所以只能截几张图来看一看咯<求mac上怎么制作gif>
    这里写图片描述

这里写图片描述

这里写图片描述

play方法

  • 加载所有动画图片
  • 设置动画图片
  • 设置播放次数
  • 设置图片
  • 设置动画时间
  • 开始动画
  • 播放完毕后执行的方法
- (void)play:(NSString *)filenamePrefix count:(int)count
{
    // 加载所有的动画图片
    NSMutableArray *images = [NSMutableArray array];
    for (int i = 1; i<=count; i++) {
        NSString *filename = [NSString stringWithFormat:@"%@_%d", filenamePrefix, i];
        NSString *file = [[NSBundle mainBundle] pathForResource:filename ofType:@"png"];
        UIImage *image = [UIImage imageWithContentsOfFile:file];
        [images addObject:image];
    }

    // 设置动画图片
    self.imageView.animationImages = images;

    // 设置播放次数
    self.imageView.animationRepeatCount = [filenamePrefix isEqualToString:@"stand"] ? 0 :1;

    // 设置图片
    self.imageView.image = [UIImage imageNamed:@"stand_1"];

    // 设置动画的时间
    self.imageView.animationDuration = count * 0.04;

    // 开始动画
    [self.imageView startAnimating];

    if ([filenamePrefix isEqualToString:@"stand"]) return;
    // 播放完动画以后站着(延迟self.imageView.animationDuration时间后调用self的stand方法)
    [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];
}

简单加载音频

  • 步骤
    • 导入音频头文件
    • 创建音频属性
    • 创建一个音频文件的URL
    • 创建播放器
    • 开始播放
#import <AVFoundation/AVFoundation.h>
@property (strong, nonatomic) AVPlayer *player;
// 创建一个音频文件的URL(URL就是文件路径对象)
NSURL *url = [[NSBundle mainBundle] URLForResource:@"dazhao" withExtension:@"mp3"];
// 创建播放器
self.player = [AVPlayer playerWithURL:url];
// 播放
[self.player play];

源码

//
//  ViewController.m
//  拳皇帧动画
//
//  Created by MacBookPro on 15/8/9.
//  Copyright © 2015年 sky5156. All rights reserved.
//

#import "ViewController.h"

#import <AVFoundation/AVFoundation.h>

@interface ViewController ()

//拿到storyboard中的imageView
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

//放点音乐
@property (nonatomic, strong) AVPlayer *player;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //加个边框
    CALayer *layer = [self.imageView layer];
    layer.borderColor = [UIColor redColor].CGColor;
    layer.borderWidth = 5.0f;

    [self stand];
}
- (IBAction)stand {
    [self play:@"stand" count:10];
}

- (IBAction)dead {
    [self play:@"dead" count:23];
}

- (IBAction)run {
    [self play:@"run" count:6];
}

- (IBAction)xiaozhao {
    [self play:@"xiaozhao1" count:20];

    [self playMusic:@"xiaozhao1"];
    [self performSelector:@selector(xiaozhao2) withObject:nil afterDelay:20 * 0.06];

   // [self play:@"xiaozhao3" count:39];
}

- (IBAction)dazhao {
    [self play:@"dazhao" count:87];
    [self playMusic:@"dazhao"];
}

- (IBAction)install_b {
    [self play:@"install_b" count:29];
}


- (void)xiaozhao2
{
    [self play:@"xiaozhao2" count:35];
    [self playMusic:@"xiaozhao2"];
    [self performSelector:@selector(xiaozhao3) withObject:nil afterDelay:35 * 0.06];
}

-(void)xiaozhao3
{
    [self play:@"xiaozhao3" count:39];
    [self playMusic:@"xiaozhao3"];

}


- (void)playMusic:(NSString *)music
{

    NSString *urlString = [NSString stringWithFormat:@"%@",music];
  //  NSString *urlName = [[NSBundle mainBundle] pathForResource:urlString ofType:@"mp3"];

    NSURL *url = [[NSBundle mainBundle] URLForResource:urlString withExtension:@"mp3"];
    self.player= [AVPlayer playerWithURL:url];
    [self.player play];
}


- (void)play:(NSString *)preFixName count:(int)count
{
    //加载动画
    NSMutableArray *images = [NSMutableArray array];

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

        NSString *fileName = [NSString stringWithFormat:@"%@_%d",preFixName,i];

        NSString *name = [[NSBundle mainBundle] pathForResource:fileName ofType:@"png"];

        UIImage *image = [UIImage imageWithContentsOfFile:name];

        [images addObject:image];
    }
    //设置动画的
    self.imageView.animationImages = images;

    self.imageView.image = [UIImage imageNamed:@"stand_1"];

    self.imageView.animationRepeatCount = [preFixName isEqualToString:@"stand"]?0 : 1;

    self.imageView.animationDuration = count*0.06;

    [self.imageView startAnimating];

    //播放完以后站着
    if ([preFixName isEqualToString:@"stand"])  return;

    [self performSelector:@selector(stand) withObject:nil afterDelay:count *0.06];
}
@end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值