在iOS中加载GIF(Loading GIFs in iOS)

我正在为我的iOS应用程序使用自定义创建的加载微调器,但边缘在彩色背景上看起来粗糙,正如GIF预期的那样。

其他应用程序如何处理这种情况? 他们使用GIF以外的任何东西,也许APNG或其他东西? GIF的原因是,边缘总是很粗糙,使用遮面,只有一种颜色而不是其他颜色。

有解决方案吗

I'm using a custom created loading spinner for my iOS app, but the edges looks rough on a coloured background as expected from a GIF.

How do other apps handle this situation? Do they use anything other than GIF, maybe APNG or something? Cause with GIF, the edges are always going to be rough, if matte is used, it would look good on just one color and not the others.

Any solution?

原文:https://stackoverflow.com/questions/23573170

2020-02-20 14:14

满意答案

UIImageView类为开发人员提供了实现动画的最简单方法。 您需要做的就是创建一个UIImageView对象,其中包含一系列用于动画制作的图像。

// Load images

NSArray *imageNames = @[@"win_1.png", @"win_2.png", @"win_3.png", @"win_4.png",

@"win_5.png", @"win_6.png", @"win_7.png", @"win_8.png",

@"win_9.png", @"win_10.png", @"win_11.png", @"win_12.png",

@"win_13.png", @"win_14.png", @"win_15.png", @"win_16.png"];

NSMutableArray *images = [[NSMutableArray alloc] init];

for (int i = 0; i < imageNames.count; i++)

{

[images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]];

}

// Normal Animation

UIImageView *animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 95, 86, 193)];

animationImageView.animationImages = images;

animationImageView.animationDuration = 0.5;

[self.view addSubview:animationImageView];

[animationImageView startAnimating];

The UIImageView class provides the easiest way for developers to implement animations. All you need to do is to create an UIImageView object with a series of images for animating.

Example

// Load images

NSArray *imageNames = @[@"win_1.png", @"win_2.png", @"win_3.png"];

NSMutableArray *images = [[NSMutableArray alloc] init];

for (int i = 0; i < imageNames.count; i++) {

[images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]];

}

// Normal Animation

UIImageView *animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 95, 86, 193)];

animationImageView.animationImages = images;

animationImageView.animationDuration = 0.5;

[self.view addSubview:animationImageView];

[animationImageView startAnimating];

2019-08-08

相关问答

使用webkit方法结束选择,松开,钳位或0.1默认 + (float)frameDurationAtIndex:(NSUInteger)index source:(CGImageSourceRef)source

{

float frameDuration = 0.1f;

CFDictionaryRef cfFrameProperties = CGImageSourceCopyPropertiesAtIndex(source,index,nil);

NSDictionary...

动画png或APNG( http://en.wikipedia.org/wiki/APNG )。 他们可以使用APNG插件在GIMP 中制作但是动画GIF真的是主要的 - 闪存有点接管,但这不是一个真正的图像本身。 另外,来自同一维基百科页面的其他替代方案:MNG文件格式是APNG更强大的替代方案,尽管它是一种更为复杂的格式,并且具有较少的Web浏览器支持。 GIF文件格式比APNG具有更好的应用程序和浏览器支持,但每帧限制为256种颜色,并且通过将其中一种调色板映射到透明度,仅支持1位Alpha...

只要有人需要解决方案: _

_

_

正如我所说,spritesheet动画比使用spifesheet更容易,并且为你提供了更多的灵活性,比如在同一个图像文件中存储多个动画。 这个很好的教程将帮助您开始使用XNA中的spritesheet动画。 你可以用很长的时间来开发一个有效的动画库。 简而言之,XNA在其Draw方法中已经有一个参数,它允许您只绘制完整图像的一小部分(参数:source)。 使用它,您可以每隔X秒更改一次源,使其看起来像GIF动画。 我向你保证,它确实不是太复杂,不应该太长时间实现(因为我已经多次自己完成,总是改进...

VideoProvider可以做到。 VideoProvider can make it.

我找到了答案。 您不必共享实际图像。 要共享一个gif,你所做的就是共享数据: var cell = self.collectionView.cellForItemAtIndexPath(index)

println(index.item)

var URLString: String = contentArray[index.item].contentUrlStirng

var shareURL: NSURL = NSURL(string: "\(...

不需要。启动图像必须是PNG图像,最好是非隔行扫描。 来源: iOS应用程序编程指南 No. Launch images are required to be PNG images, preferably non-interlaced. Source: iOS App Programming Guide

这对我有用 - 没有任何限制: JFrame f=new JFrame();

f.setSize(500, 500);

JLabel l=new JLabel();

ImageIcon icon=new ImageIcon("bird.gif");

l.setIcon(icon);

f.add(l);

f.setVisible(true);

This works for me - no bounds no nothing: JFrame f=new JFrame(...

你需要手动删除Gif图像,以便从内存中清除它们。 示例: gifViwer可以是此示例中的Gif Viewer self.gifViewer.removeFromSuperview()

self.gifViewer = nil

如果你必须分配一个代表,那么你也可以添加 self.gifViewer.Delegate = nil

注意:您需要在完全卸载viewControler时运行此操作,因为应用程序将在删除视图时开始在视图中查找gifViewer 。 如果你需要从内存中清除gif图像而不卸载...

UIImageView类为开发人员提供了实现动画的最简单方法。 您需要做的就是创建一个UIImageView对象,其中包含一系列用于动画制作的图像。 例 // Load images

NSArray *imageNames = @[@"win_1.png", @"win_2.png", @"win_3.png", @"win_4.png",

@"win_5.png", @"win_6.png", @"win_7.png", @"win_8.png",

...

相关文章

最近公司的事情很忙,在开发一个类似于微信的App,经常加班,所以也没有时间去更新微信公众账号的内容了。

...

本文转载至http://www.cnblogs.com/easonoutlook/p/3280232.

...

1.使用前 需要导入Social.framework 框架 2.实例代码(新浪微博为例) - (IBA

...

进来接微信支付,后台要传ip地址,so~ 首先要导这些头文件 1 #include <s

...

popOver这个空间本身是iPad only的,所以iPhone上见不到,我记得微信上有个这样的弹出

...

晚上下班后时间充裕,平时要么看电视剧,要么玩游戏 感觉浪费时间。 最后决定自己也搞一个微信订阅号分享技

...

家里老大的iphone5在WWDC后第一时间升级了IOS7. 整体的UI风格和功能都很喜欢, 偶尔的c

...

中文名: iOS 5核心框架 作者: (美)Shawn Welch 译者: 鲁成东

...

//微信的摇一摇是怎么实现的~发现原来 ios本身就支持//在 UIResponder中存在这么一套方

...

微信的摇一摇是怎么实现的~发现原来 ios本身就支持 在 UIResponder中存在这么一套方法

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

ios 旋转加载gif_在iOS中加载GIF(Loading GIFs in iOS)相关推荐

  1. webpack 中的加载器简介||webpack 中加载器的基本使用——1. 打包处理 css 文件 2. 打包处理 less 文件 3.打包处理 scss 文件

    webpack 中的加载器 1. 通过 loader 打包非 js 模块 在实际开发过程中,webpack 默认只能打包处理以 .js 后缀名结尾的模块,其他非 .js 后缀名结尾的模块, webpa ...

  2. mysql驱动为什么自动加载_为什么JDBC中加载驱动要使用反射?

    原文链接:https://www.cnblogs.com/homejim/p/8076481.html 在JDBC详解系列(一)之流程中,我将数据库的连接分解成了六个步骤. JDBC流程: 第一步:加 ...

  3. iframe中加载html,在iframe中加载外部html并访问内容

    我只需要提供src属性即可加载外部页面时,我需要知道如何访问iframe内容.在iframe中加载外部html并访问内容 我正在使用iframe在jquery对话框中加载HTML页面.在这里,我不能修 ...

  4. html如何在屏幕中显示加载,在HTML5应用中加载屏幕

    这是进度元素...... 这将从20开始加载.当然只有元素不够.您需要在脚本加载时移动它.为此,我们需要JQuery.这是一个简单的JQuery脚本,它从0到100开始进度,并在定义的时间段内执行某些 ...

  5. java怎么将加载图片消除_Java中加载图片的方法

    Java中添加图片,我知道有两种方法 用new ImageIcon("地址")函数,将图片放到JLabel中,然后把JLabel放到需要的地方就可以了 ImageIcon bg=n ...

  6. java中的加载因子_java - HashMap中加载因子的意义是什么?

    如果水桶太满,那么我们必须仔细检查 一个很长的链表. 这就是打败这一点. 所以这是一个我有四个桶的例子. 到目前为止,我的HashSet中有大象和獾. 这是一个非常好的情况,对吗? 每个元素都有零个或 ...

  7. mysql left join中on后加条件判断和where中加条件的区别

    left join中关于where和on条件的几个知识点:1.多表left join是会生成一张临时表,并返回给用户2.where条件是针对最后生成的这张临时表进行过滤,过滤掉不符合where条件的记 ...

  8. Geospark从Shapefile中加载RDD

    title: '(二)Geospark从Shapefile中加载RDD' date: 2021-04-29 19:09:48 tags: [] published: true hideInList: ...

  9. Angular(4)中加载Arcgis for JavaScript地图

    背景 近期我司项目的需要,采用Angular(4)+SpringBoot前后端分离的架构.并且在需要在项目中实现Arcgis地图. 本人之前有过Arcgis for JavaScript的小小填坑经验 ...

  10. ios 旋转加载gif_加载GIF动画方法 iOS

    方法一 使用UIWebView _codeStr为gif网址      如果是本地的gif可以直接使用dataWithContentsOfFile方法 NSData *data = [NSData d ...

最新文章

  1. java base64 编码 类_java base64编码和解码的三种方式 | 学步园
  2. 经济学相关资料20170924.词袋.books
  3. Redis和Memcached:数据类型 过期策略 持久策略 虚拟内存 Value大小
  4. FPGA学习之路—接口(3)—SPI详解及Verilog源码分析
  5. 人脸登陆facelogin
  6. ULARGE_INTEGER运算
  7. Poj(3615),Floyd,最大值中的最小值
  8. Spring Security:基于MySQL数据库的身份认证
  9. java 私有成员方法_Java Reflection 教程(7):类私有成员变量和方法
  10. 大学计算机python期末考试用什么软件_大学计算机--Python算法实践_章节测验,期末考试,慕课答案查询公众号...
  11. 手把手教你解密MacOS平台下的Chrome密码
  12. 模拟 之 zoj 3818 Pretty Poem
  13. 破解锐捷--实现路由器认证锐捷,轻松开WiFi
  14. OpenCV学习笔记(十一)——模板匹配
  15. 微信小程序之view布局
  16. mac 读写 ntfs
  17. springboot redis: xxx as a subtype of [simple type, class java.lang.Object]: no such class found
  18. 智能实验室管理系统的现状怎么样
  19. 与Mr. Zuul男神的亲密接触 | 温哥华峰会Day3
  20. DataX数据交换,starrockswriter异常解决

热门文章

  1. 最新研究发现:另一半学历越高,你的身体可能就越健康
  2. H5标签input标签上传文件(一)
  3. Mapper和dao
  4. win10计算机无法复制文件,Windows10系统无法复制文件到u盘的解决方案
  5. ArcGIS数据生产与精细化制图之中国年降水量分布图的制作(转载)
  6. 使用JRE8构建Java8基础镜像
  7. 什么是ISP,他的工作原理是怎样的
  8. [阿里天池]Baby Goods Info Data
  9. 软件测试中的人工智能现状:未来会怎样?
  10. 【有利可图网】PS教程:给人物制作一种碎片打散效果