最初,我的印象是它在插入/删除新行时使用表格行向上/向下滑动动画,但我怀疑它是否这样做,因为即使列表中有数千个项目,它也会如此流畅(否则它会需要花费很多时间才能进行删除/插入工作)。
我的假设是否正确,它只是在屏幕底部附加新闻列表的一个新实例,缩小上面的实例,同时底部的实例扩展以填满空间?
更新:
请观看这个视频来了解我的意思:http://dl.dropbox.com/u/4960327/ReederAnim.mov
最佳答案
我无法确切地告诉您 Silvio Rizzi 是如何做到这一点的,但是正如您在播放中看到的那样,在显示的 ListView 后面添加了一个 ListView ,并且前面的 ListView 淡出(.alpha = 0.0;),而它后面的 ListView 扩展了每行的高度。
当你一帧一帧地干燥它时,就会很清楚他在做什么,而且确实没有那么先进。但不得不承认,白色的“乳白色”抛光界面,看起来还是挺工整的。
此外,您可以看到,在制作动画时,背景 ListView 仅呈现前 7 个条目(希望通过将 View 高度除以所显示单元格的平均高度来计算),从而使 ListView 能够快速加载。然后,一旦您开始滚动,他就可以加载扩展的单元格数组,或者在动画完成后启动后台线程。
关于objective-c - Reeder Mac 应用程序在切换文件夹时如何以动画方式显示列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285945/