我目前有一个应用程序,它将显示分配给用户执行某个操作的时间。目前很简单,使用UILabel显示剩余时间。
我想在界面上添加一些润色,并显示图形倒计时,这对用户来说更具吸引力。
我不知道如何做到这一点,但我的理论如下: 我知道我倒计时的最大值是999.所以我可以创建3个UIImageViews来表示每个数字。 计时器当前每秒更新剩余的倒计时值,然后将UILabel设置为该值。理论上,我可以将此字符串拆分为其组成数字(或循环字符串字符),并根据传入的数字将“数字”图像加载到相应的UIImageView中。
我的问题:
我提到的方法是不是 效率?
这是最好的方法吗? 情况?
如何为图像更改设置动画 过度?理想情况下我想要它 要从中滑入的新图像 顶部的图像视图,而 它取代幻灯片的图像 从底部。这是否均匀 可能的?
只是为了澄清一下,我不是在找人为我编写代码,只是想找几个关于实际实现的指针。
非常感谢您花时间阅读这篇文章。
编辑,看来这里的帖子How to animate the change of image in an UIImageView?帮助我动画实际图像。但我仍然希望就我提议的实施获得任何建议。
答案 0 :(得分:1)
此时,我会说去,看看你得到了什么 祝你好运。
答案 1 :(得分:0)
您的基本方法是合理的。要记住的一些事情:
对于倒数计时器,请勿减少NSTimer
中剩余的时间。相反,始终使用“现在减去开始时间”。如果系统繁忙,NSTimer
可能无法按计划启动。阅读NSTimer中的“重复与非重复定时器”,了解它们的工作原理。
对于这样的问题,我喜欢用digit0.png,digit1.png等名称来命名我的文件。然后,你可以像这样加载它们:
NSString *imageName = [NSString stringWithFormat:@"digit%d.png", digit];
self.imageView.image = [UIImage imageNamed:imageName];
+imageNamed:
有自己的缓存,所以这非常有效。或者,您可以使用早期加载的10个图像的数组,并使用objectAtIndex:
来获得正确的图像。我通常只使用+ imageNamed:。
滑入新图片没问题,但您不应该使用UIImageView
。您可能应该使用当前和下一个图像加载的两个CALayers
创建自定义视图,并使用简单的动画从一个到另一个滑动。从Core Animation Programming Guide开始,网上也有几个教程。这是一个学习核心动画的优秀小项目。