zoukankan      html  css  js  c++  java
  • 利用NSTimer实现序列帧动画

       开始接触IOS的时候,object-C中的UIImageView中可以利用animationImages来实现序列动画,但是在实际应用时出问题了,触发的时候加载速度有点慢,在想办法解决加载速度的时候,偶然在别人的博客看到了NSTimer的用法,突来了想法。

       思路,利用NSTimer间隔的去替换UIImageView的image,这里先说下有关于image的imageWithContentsOfFile和imageNamed,开始我很乐意区使用imageNamed,因为不用写繁琐的代码,但是这是错误的,在很多论坛都有提及image的imageWithContentsOfFile和imageNamed对内存的问题,imageNamed会有缓存,而imageWithContentsOfFile是即用即清除,所以建议尽可能的要去自己使用imageWithContentsOfFile。

       代码


    #import "ViewController.h"

    @interface ViewController ()

    @end

    @implementation ViewController

    @synthesize imageView;

    NSTimer *timer;

    int imageIndex;

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];
        [self.view addSubview:imageView];

        imageIndex = 0;
        
        timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
    }

    - (void) changeImage{
        imageIndex += 1;
        NSString *imageName = [NSString stringWithFormat:@"飞兽%d",imageIndex];
        NSString *imagePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"jpg"];
        /*
         imageNamed:(NSString *)name;会产生缓存
         imageWithContentsOfFile:(NSString *)path;不会产生缓存
         */
        imageView.image = [UIImage imageWithContentsOfFile:imagePath];
        if (imageIndex == 20) {
            imageIndex = 0;
        }
    }

    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }

    @end
  • 相关阅读:
    C博客作业00我的第一篇博客
    html5 canvas中CanvasGradient对象用法
    Java 多线程总结
    查看和设置MySQL数据库字符集(转)
    (原)QQ表情弹出框的制作(凑热闹)
    [转]模版方法(Template Method)
    .net Smtp Email工具V1
    [转]迭代器模式(Iterator Pattern)
    (原)可自定义Item子项的ListBar控件V1.0
    使用C#实现ADSL自动拨号
  • 原文地址:https://www.cnblogs.com/UnrealEra/p/3583570.html
Copyright © 2011-2022 走看看