六.plist的使用方法:

iOS的程序在安装在手机上以后会把全部资源文件集成在一个文件夹中,这种文件集合称为bundle,对于一般的工程,只有一个bundle,即mainbundle,因此可以通过bundle来获取文件的全路径,然后读取文件,下面的例子读取的是一个数组plist。

NSArray *dictArray = [NSArrayarrayWithContentsOfFile:[[NSBundlemainBundle]
pathForResource:@"questions.plist"ofType:nil]];

七.序列帧动画


类似于电影,将图片按顺序播放。

xcassets默认不支持jpg(新版本支持),可以放到Supporting Files。

对于尺寸,直接选择Size为3.5-inch也是320x480。

为了实现01 02这样的显示,用%02d,2表示占位数,前面表示用什么占位。

图片的文件名无论路径,直接写,老版本jpg要加拓展名,新版本可以省略。

ImageView有一系列的方法用于设置动画:infinite表示无尽的。

需要十分注意的是,animationImages接收的是UIImage元素。
如果文件名有前导0,通过%0Xd来实现,X个占位,不够的位数用0来补。
具体实现为:

NSMutableArray *array = [NSMutableArray array];

; i < ; i++){

NSString *file = [NSString stringWithFormat:@"drink_%02d.jpg",i];

UIImage *image = [UIImage imageNamed:file];

[array addObject:image];

}

self.tom.animationImages = array;

;

self.tom.animationDuration = array.count * 0.08;

[self.tom startAnimating];

需要注意的是,注意检查图片中间有无缺失的帧,动画加载如果出现nil帧会直接报错。

使用全路径来加载图片:

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

NSBundle *bundle = [NSBundle mainBundle];

NSString *path = [bundle pathForResource:file ofType:@"jpg"];

UIImage *image = [UIImage imageWithContentsOfFile:path];

这样加载图片,使用imageNamed方法会有缓存机制,不会被立即释放。所以使用imageWithContentsOfFile方法来加载全路径的图片,后者

没有缓存,注意是全路径(用Bundle)。

防止动画重复播放:if(self.xximageview.isAnimating) return;

一些小技巧:如果想让点击ImageView的不同部分产生不同的效果,可以通过放置隐藏按钮。

内存管理:动画播放完毕后清空内存中图片。

self.xximageview.animationImages = nil;

使用定时器来延迟销毁:

第一个参数为函数名,第二个为参数,第三个为延迟时间(秒)。

CGFloat delay = self.tom.animationDuration + 1.0;

[self performSelector:@selector(clearCache) withObject:nil afterDelay:delay];

小技巧,直接通过selector调用上面的内容:

[self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:delay];


重复代码的封装抽取:将相同的代码放到一个方法中,不同的值当做方法的参数传递。

(二)plist的使用和序列帧动画的更多相关文章

  1. cocostudio使用plist创建序列帧动画图片名称序列错乱的问题

    cocostudio 版本v2.2.9 用texturePacker将动画帧打包成一个plist和一张png,将plist拖入cocostudio中的资源栏中. 如图所示,plist里面的图片顺序是乱 ...

  2. 时光煮雨 Unity3D实现2D人物动画① UGUI&Native2D序列帧动画

    系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...

  3. cocos2d-x 2.0 序列帧动画 深入分析

    转自:http://blog.csdn.net/honghaier/article/details/8222401 序列帧动画主要有几个类: CCSpriteFrame:精灵帧信息,序列帧动画是依靠多 ...

  4. [Cocos2d-x v3.x]序列帧动画

      简单介绍 Cocos2d-x中.动画的详细内容是依靠精灵显示出来的,为了显示动态图片,我们须要不停切换精灵显示的内容.通过把静态的精灵变为动画播放器从而实现动画效果. 动画由帧组成,每一帧都是一个 ...

  5. unity shader序列帧动画代码,顺便吐槽一下unity shader系统

    一.看到UNITY论坛里有些人求unity shader序列帧动画,写shader我擅长啊,就顺势写了个CG的shader.代码很简单,就是变换UV采样序列帧贴图,美术配置行数列数以及变换速度. Sh ...

  6. iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)

    一.各个动画的优缺点 1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了. 2.核心动画:有点在于对后续的处理方便. 3.块动画: (1)在实际的 ...

  7. Unity3d的序列帧动画

    马上这星期就要过去了,为了完成每星期写一篇博客的目标,熬夜也要写完. 最近项目中用到了很多序列帧动画,之前看教程也接触过序列帧动画,但当时没用到,就没仔细研究,这次就借着这个机会好好总结一下序列帧动画 ...

  8. iOS开发基础-序列帧动画之Tom猫

    新建一个Single View Application,向该工程中导入Tom猫的图片资源,本示例演示Tom猫喝牛奶的动作.图片的名字为 drink_00.jpg.drink_01.jpg.....dr ...

  9. Unity Shader序列帧动画学习笔记

    Unity Shader序列帧动画学习笔记 关于无限播放序列帧动画的一点问题 在学shader的序列帧动画时,书上写了这样一段代码: fixed4 frag(v2f i){ // 获得整数时间 flo ...

随机推荐

  1. 启动Docker容器

    启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. 新建并 ...

  2. Arrays的二分查找

    二分查找也称为折半查找,是对有序元素查找的一种算法,在查找的过程中,不断的将搜索长度减半,因此效率不错.Java的JDK提供了二分法查找的算法,使用的方法是Arrays.binarySearch(). ...

  3. MFC误报内存泄露的修复

    在debug状态退出程序的时候,VS会在输出窗口列出可能的内存泄露的地方. MFC中使用DEBUG_NEW能够更方便的定位泄露的地点.但假如MFC的dll释放""过早"& ...

  4. valgrind检测内存泄漏

    Valgrind 使用 用法:valgrind [options] prog-and-args [options]: 常用选项,适用于所有Valgrind工具 -tool=<name>最常 ...

  5. Support Annotation Library使用详解

    概述 Support Annotation Library是在Android Support Library19.1版本开始引入的一个全新的函数包,它包含了诸多有用的元注解.用来帮助开发者在编译期间发 ...

  6. 无需密码通过scp命令+key的方式实现文件传输

    如果觉得scp每次都要输入密码很麻烦, 那么这是解决方案.假设你平时在windows上开发,用户名是xiang, 你有一台Ubuntu服务器wdksw.com, 用户名是root.现在你准备上传一些文 ...

  7. Linux 高性能服务器编程——高级I/O函数

    重定向dup和dup2函数 #include <unistd.h> int dup(int file_descriptor); int dup2(int file_descriptor_o ...

  8. Android中Snackbar的介绍以及使用

    Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版,不仅有显示信息的功能,还可以添加一个Action,实现点击功能,可以右滑删除. 效果图 Snackba ...

  9. 树莓派初体验,安装Ubuntu 14.04 LTS

    转载自:http://www.polarxiong.com/archives/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%88%9D%E4%BD%93%E9%AA%8C-%E5%AE ...

  10. How to speed up Remote Desktop Connection in Win7

    run following command in DOS window: netsh interface tcp set global autotuninglevel=disabled or nets ...