美文网首页
汤姆猫App 简单实现

汤姆猫App 简单实现

作者: RWz_my | 来源:发表于2017-07-21 11:15 被阅读13次

    源码及素材下载地址:download.csdn.net/detail/rwz_my/9904419

    重点在于通过imageNamed加载图片与通过图片路径取图片的区别

    //  ViewController.m

    //  汤姆猫

    //

    //  Created by Ren on 17/5/16.

    //  Copyright © 2017年 Ren. All rights reserved.

    //

    #import "ViewController.h"

    @interface ViewController ()

    @property (weak, nonatomic) IBOutlet UIImageView *imgView;

    - (IBAction)drink:(UIButton *)sender;

    - (IBAction)pi:(UIButton *)sender;

    - (IBAction)eat:(UIButton *)sender;

    - (IBAction)za:(UIButton *)sender;

    - (IBAction)zhua:(UIButton *)sender;

    - (IBAction)qiao:(UIButton *)sender;

    - (IBAction)knockout:(UIButton *)sender;

    @end

    @implementation ViewController

    - (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    }

    - (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    }

    //执行动画

    -(void)startAnimation:(NSString *)picName indexCount:(int)indexCount;

    {

    //判断动画是否在执行

    if (self.imgView.isAnimating)

    {

    return;

    }

    //1.创建一个存放图片的数组

    NSMutableArray *imgArr = [NSMutableArray arrayWithCapacity:0];

    for (int i = 0 ; i < indexCount; i++)

    {

    NSString *imgName = [NSString stringWithFormat:@"%@_%02d",picName,i];

    /*

    通过imageNamed加载图片

    优点:图片加载到内存当中后,下次调用时直接取出,无需加载,不会释放

    缺点:如果需要加载的图片过多,会导致占用非常大部分的内存,甚至会直接被系统强制退出程序

    */

    //        UIImage *img = [UIImage imageNamed:imgName];

    NSString *path = [[NSBundle mainBundle] pathForResource:imgName ofType:@"jpg"];

    //通过图片路径取图片,需要传递一个图片的完整路径,适合加载大量图片

    UIImage *img = [UIImage imageWithContentsOfFile:path];

    [imgArr addObject:img];

    }

    //2.将图片存入到序列图片数组中

    self.imgView.animationImages = imgArr;

    //3.设置动画持续时间;

    self.imgView.animationDuration = imgArr.count * 0.1;

    //4.设置动画循环次数(默认为无数次)

    self.imgView.animationRepeatCount = 1;

    //5.开启动画

    [self.imgView startAnimating];

    //6.清空图片数组--performSelector方法:延迟执行;

    //                  @selector(setAnimationImages:) 当这个方法启动后

    //                  withObject: 设置为nil后,self.imgView中就被清空

    //                    afterDelay:延迟时间

    [self.imgView performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:imgArr.count * 0.1];

    }

    - (IBAction)drink:(UIButton *)sender

    {

    [self startAnimation:@"drink" indexCount:80];

    }

    - (IBAction)pi:(UIButton *)sender

    {

    [self startAnimation:@"fart" indexCount:26];

    }

    - (IBAction)eat:(UIButton *)sender

    {

    [self startAnimation:@"eat" indexCount:38];

    }

    - (IBAction)za:(UIButton *)sender

    {

    [self startAnimation:@"footLeft" indexCount:28];

    }

    - (IBAction)zhua:(UIButton *)sender

    {

    [self startAnimation:@"footRight" indexCount:28];

    }

    - (IBAction)qiao:(UIButton *)sender

    {

    [self startAnimation:@"cymbal" indexCount:11];

    }

    - (IBAction)knockout:(UIButton *)sender

    {

    [self startAnimation:@"knockout" indexCount:80];

    }

    @end

    相关文章

      网友评论

          本文标题:汤姆猫App 简单实现

          本文链接:https://www.haomeiwen.com/subject/ifyrkxtx.html