首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在真实的iOS设备上,UIImageView动画效果不佳

在真实的iOS设备上,UIImageView动画效果不佳
EN

Stack Overflow用户
提问于 2013-03-13 07:47:23
回答 3查看 573关注 0票数 0

我想添加一些动画,当应用程序是launched.Everything在iPad simulator.But上运行得很好时,当它在真正的iPad上运行时,帧将静止一段时间,然后开始动画。在显示所有帧之前,动画已完成。以下是我的代码

代码语言:javascript
运行
AI代码解释
复制
    - (void)viewDidAppear:(BOOL)animated
{
    NSArray *myImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"1.png"], 
                         [UIImage imageNamed:@"2.png"], 
                         [UIImage imageNamed:@"3.png"], 
                         [UIImage imageNamed:@"4.png"], 
                         [UIImage imageNamed:@"5.png"],
                         [UIImage imageNamed:@"6.png"],
                         [UIImage imageNamed:@"7.png"],
                         [UIImage imageNamed:@"8.png"],
                         [UIImage imageNamed:@"9.png"],
                         [UIImage imageNamed:@"10.png"],
                         [UIImage imageNamed:@"11.png"],
                         [UIImage imageNamed:@"12.png"],
                         [UIImage imageNamed:@"13.png"],
                         [UIImage imageNamed:@"14.png"],
                         [UIImage imageNamed:@"15.png"],
                         [UIImage imageNamed:@"16.png"],
                         [UIImage imageNamed:@"17.png"],
                         [UIImage imageNamed:@"18.png"],
                         [UIImage imageNamed:@"19.png"],
                         [UIImage imageNamed:@"20.png"],
                         [UIImage imageNamed:@"21.png"],
                         [UIImage imageNamed:@"22.png"],
                         [UIImage imageNamed:@"23.png"],
                         [UIImage imageNamed:@"24.png"],
                         [UIImage imageNamed:@"25.png"],
                         [UIImage imageNamed:@"26.png"],
                         [UIImage imageNamed:@"27.png"],
                         [UIImage imageNamed:@"28.png"],
                         [UIImage imageNamed:@"29.png"],
                         [UIImage imageNamed:@"30.png"],
                         [UIImage imageNamed:@"31.png"],
                         [UIImage imageNamed:@"32.png"],
                         [UIImage imageNamed:@"33.png"],
                         [UIImage imageNamed:@"34.png"],
                         [UIImage imageNamed:@"35.png"],
                         [UIImage imageNamed:@"36.png"],
                         [UIImage imageNamed:@"37.png"],
                         [UIImage imageNamed:@"38.png"],
                         nil];   

    //myAnimatedView is UIImageView outlet
    myAnimatedView.animationImages = myImages; 
    myAnimatedView.animationDuration = 3; 
    myAnimatedView.animationRepeatCount = 1; 
    [myAnimatedView startAnimating];

    //trigger animationDone method when animation is finished
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, myAnimatedView.animationDuration * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        [self animationDone];
    });
EN

回答 3

Stack Overflow用户

发布于 2013-03-13 09:27:17

我认为问题出在您试图检测动画是否已完成的方式上。你的方法是不正确的,因为它只是基于对动画的估计。

手机的cpu能力比模拟器低得多,模拟器使用的是Mac的CPU,所以在执行周围的事情时会更慢。因此,当您假定动画已完成加载时,动画尚未完成。

此外,我不明白使用中央调度中心作为一个简单的计时器背后的逻辑,这基本上就是你正在做的。

我会将逻辑更改为一个简单的计时器,在这个计时器中,我将只检查UIImageViewisAnimating值。

所以,把这个去掉:

代码语言:javascript
运行
AI代码解释
复制
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, myAnimatedView.animationDuration * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        [self animationDone];
    });

并替换为以下内容:

代码语言:javascript
运行
AI代码解释
复制
[self performSelector:@selector(checkAnimation) withObject:nil afterDelay:0.1];

下面是我们的checkAnimation函数:

代码语言:javascript
运行
AI代码解释
复制
- (void)checkAnimation {
    if (animationView.isAnimating) {
        [self performSelector:@selector(checkAnimation) withObject:nil afterDelay:0.1];
    }
    else {
        [self animationDone];
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-03-13 09:03:36

尝试预加载图像,以便在第一次设置动画时不会出现延迟。

票数 0
EN

Stack Overflow用户

发布于 2013-03-14 13:16:02

加载38张1024x768的图像会耗尽你的记忆力。较新的iPads可能能够处理它,但肯定会有严重的滞后问题,甚至可能崩溃。特别是在迷你和老式的垫子上。

考虑一个小视频。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15379609

复制
相关文章
在 Web 中获取 MAC 地址
两年前做的一个项目,当时客户的需求还没有完成,客户就提出了解决安全的问题,这是当时写的一个记录,分享到这里。
码农UP2U
2020/08/26
15.8K4
如何设置谷歌浏览器在新窗口中打开链接?如何设置谷歌浏览器在新标签页中打开链接?
一、快捷键方式:   1、左键单击 ==》 在当前窗口中打开目标网页。   2、Shift + 左键单击 ==》 在新窗口中打开目标网页。   3、Ctrl + 左键单击 ==》 在新标签页中打开目标
黑泽君
2018/10/11
116.8K0
React中使用ajax获取数据在移动浏览器中不显示问题
这个问题困扰了我半个月的时间,今天终于解决了。 在做的一个小项目,页面加载后使用ajax读取本地REST数据,保存在状态中,稍后在form的选择下拉框中显示,代码如下:
fanzhh
2019/08/20
6K0
使用async批量获取博客链接
主要使用了superagent cheerio async 目的获取所有的博客链接,需要的参数有 博客地址 以及 总页码 let superagent = require('superagent') let cheerio = require('cheerio') const async = require('async') let baseBlogLink = 'https://fizzz.blog.csdn.net/' // 博客地址 let articleSelector = '.articl
拿我格子衫来
2022/01/24
4130
使用async批量获取博客链接
在IE中启动火狐——自定义浏览器链接协议
有时候需求就是这么奇葩,特别是在这个浏览器混战收尾的节骨眼上,有的客户正在将全单位的浏览器统一到Chrome、有的正在统一到Firefox、还有的正在统一到360上。于是就有了如题的需求,客户正在将浏览器统一到某一B浏览器,但是当前系统还运行在A浏览器上,需要在A浏览器所兼容的系统S1中点击某链接,自动用B打开S2系统。
用户1183026
2019/05/25
1.3K0
获取网页中超链接PY源码
关于源码的使用 使用了request,bs4的库 可以用来抓取网页中的超链接(可以设置规则)。并写入到url.txt中。 我是用来抓创意工坊的mod超链接的。只是做个笔记。方便寻找。 各路大佬也可以来指点指点。 from urllib.request import urlopen from bs4 import BeautifulSoup import ssl ssl._create_default_https_context = ssl._create_unverified_context url =
impdx-忧郁的派大星
2020/11/03
4760
使用Jupyterlite在浏览器中运行Jupyter Notebook
Jupyter是一个交互式的 Python 开发环境,以 Ipython Kernel 为执行引擎,支持多种前端(Jupyter Notebook,Jupyter Lab,VS Code Jupyter 拓展),围绕.ipynb 格式的 notebook 文件,支持将代码、文档、图表、数学公式等内容整合在一起,方便用户进行交互式的开发。
杜逸先
2023/04/13
2.8K0
使用Jupyterlite在浏览器中运行Jupyter Notebook
js获取url链接中的域名部分
因为一个正确的url必定是由http://或者是https://、domain、路径/参数组成,所以可以用split以/进行分割成数组,取第3部分就是域名了。
全栈程序员站长
2022/07/08
9.3K0
使用 MediaStream Recording API 和 Web Audio API 在浏览器中处理音频(未完待续)
最近项目上有个需求,需要实现:录音、回放录音、实现音频可视化效果、上传wav格式的录音等功能。于是乎,我就顺便调研了下如何在浏览器中处理音频,发现 HTML5 中有专门的API用来处理音频。
zhaokang555
2023/10/17
6470
使用 MediaStream Recording API 和 Web Audio API 在浏览器中处理音频(未完待续)
Web浏览器中的JavaScript
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
7050
python使用pycurl获取web连
#!/usr/bin/python # _*_ coding:utf-8 _*_ import sys,os import time import pycurl url = "http://www.qq.com" #探测的目标URL c = pycurl.Curl() #创建一个Curl对象 c.setopt(c.URL,url) #定义请求的URL常量 c.setopt(c.CONNECTTIMEOUT,5) #定义请求连接的等待时间 c.setopt(c.TIMEOUT,5)
py3study
2020/01/07
1.2K0
PHP 获取指定 URL 页面中的所有链接
以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:
Z4
2020/04/22
7.7K0
html中超链接使用_HTML超链接代码
html超链接的写法是e69da5e6ba903231313335323631343130323136353331333431353431使用a标签,如:百度一下,你就知道。
全栈程序员站长
2022/09/18
1.3K0
nuScenes数据集在OpenPCDet中的使用及其获取
从官方网站上下载数据NuScenes 3D object detection dataset,没注册的需要注册后下载。 注意: 如果觉得数据下载或者创建data infos有难度的,可以参考本文下方 5.
烤粽子
2021/10/08
5.6K0
获取url链接参数
/******封装获取url链接参数开始******/ getWxCode(name){ return decodeURIComponent((new RegExp('[?|&]' + name
〆 千寻、
2020/03/12
2.5K0
[海盗湾] 磁力链接批量获取
这个工具的用途就是批量获取海盗湾的磁力链接,例如:https://thepiratebay.cr/search/tokyo%20hot
obaby
2023/02/24
2.7K0
使用Gradle在嵌入式Web容器Jetty中运行Web应用
在 Maven 等构建的项目中,我们要使用 Jetty 做嵌入式 Web 容器运行 Web 应用,通常需要添加 Jetty 相关依赖以及进行类似下面代码配置:
三产
2021/01/12
1.8K0
在 Python 中使用 Selenium 打开链接
使用 Selenium 打开链接的最简单方法是使用 WebDriver 对象的 get() 方法。此方法指示浏览器导航到指定的 URL。
很酷的站长
2023/08/11
8820
在 Python 中使用 Selenium 打开链接
解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)
2018-03-08 12:23
walterlv
2018/09/18
32.8K0
利用360浏览器官方地址获取7.0版本下载链接
最近忙毕业的事情,需要部署到Windows2003系统,但是发现03系统不支持360浏览器8.0以上版本,只能支持7.0,所以去官网找了下,发现官网已经把7.0版本下架了,网上找到的版本都是打包过的备
刺_猬
2018/06/21
1.3K0

相似问题

Silverlight OOB用户菜单控件

13

是否可以动态呈现web控件?

20

是否可以在全屏模式下创建Silverlight应用程序?

11

是否可以在silverlight的浏览器外模式下更改应用程序的标题

15

在silverlight中禁用web浏览器控件上的右键单击选项

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档