我想在iOS上模仿苹果风格的翻转计数器。
具体来说,这件事情将会飞得更快。它不会是一个闹钟,想想玩家高分,你一次只能拿出积分。计数器可以从0跳到100,到5000,它不会按顺序递增,但是当它增加时,它将在一个漂亮的剪辑中动画到下一个数字,并且它将在一两秒内跳到下一个目标值。它也没有一定数量的数字位置,如果需要,它可以从0到2,000,000。像一个高分的球员,你不知道他们最终会得到什么。因为它不能是负数,理论上最大值是UINT_MAX
我做了一些搜索,我发现了一些很好的资源,在我看来,这两种资源都不是正确的方法。
这是理论上可以在UIWebView中运行的js / css方法:
本文将介绍如何在Core Animation中进行翻页。它足够详细,但在我看来它似乎缺少一些关键组件,并且会在UI翻转时导致触摸被忽略。
现在,在阅读完这些内容之后,我对自己如何做到这一点有了不同的想法,试图权衡每种方法的优点和缺点:
1)在UIWebView中加载html计数器整个销售。
UIWebView
的开销和来自主机应用程序的持续调用stringByEvaluatingJavaScriptFromString
有下一个数字似乎很傻2)创建自定义精灵表并使用核心动画
3)使用Core Graphics渲染文本/舍入的rects
4)使用OpenGL ES 2.0渲染整个内容
一方面,我可以对它进行合理化,并说动画只会持续半秒或一秒钟,所以最好的办法就是用模糊的图像以某种方式伪造它而不是实际动画。另一方面,在我看来,这正是Core Animation + Core Graphics的设计做得很好,我应该使用它们。
使用图像精灵结束使用图像进行绘图。
screen short show both image view from right to left original and from left most re-size image flipCounter在Xcode中工作得很好,但问题是如何重新调整FlipCounter View的大小。当我用小图像改变原始图像时工作不好。![此图像比原始图像小50%] [2]我正在等待正面回复。谢谢advane
如果是我,我会去核心图形路线,只需用drawrect方法将文本绘制到视图中。我可能会构建一些背景和前景图像,我可以覆盖文本以实现UIPickerView外观。由于您只需要为文本设置动画,因此您可能会覆盖某种半透明的渐变图像,使其看起来像数字正在翻转并进入阴影。
如果你不在OpenGL中编程游戏,OpenGL路线似乎有点过分。 (另外,你必须编写一堆样板代码来渲染文本并将图像加载到纹理中等)