【问题标题】:Animating cells while UITableView is scrollingUITableView 滚动时动画单元格
【发布时间】:2012-02-28 18:02:55
【问题描述】:

我正在尝试实现一种效果,其中当 tableview 滚动时,当前可见的单元格将根据它们在屏幕上的位置进行动画处理。我对 IOS 开发人员有点陌生,所以让我试着分解一下:

  • 使用自定义单元格加载 Tableview 用户开始滚动而
  • 表在运动中,可见单元格有一个 UIView,我会在其中 喜欢执行直接对应于单元格的动画 屏幕上的当前 Y 位置。
  • 单元格只有在 可见
  • 单元格动画直接对应桌子运动,即 每当表格视图滚动时,单元格都会动画;一旦 桌子停止,动画暂停

我想到的一个解决方案是在 tableview 移动时更新 drawRect 每一帧。根据图形操作,这可能是可怕的性能明智。有没有办法在每次更改时获取当前表位置?我会更适合使用核心动画吗?

【问题讨论】:

    标签: objective-c ios animation uitableview


    【解决方案1】:

    如果您想实现以下目标,这可能会有所帮助: https://github.com/mrugrajsinh/AnimatedTableViewCellDemo

    【讨论】:

    • 不错的工作 mrug 但无法正常工作的预期功能,即 jurk 和一些时间完成的动画不适用于矩形单元格大小
    【解决方案2】:

    让你的视图控制器成为 UITableView 的代理,并使用滚动视图代理的所有方法。那里有许多用于开始滚动和结束滚动的控件,并且在 thpse 控件中,您可以检查 uitableview 单元格的定位。

    【讨论】:

    • 正是我想要的,谢谢。我认为必须有一个框架 API 才能实现这一点,谢谢。
    【解决方案3】:

    你必须成为这个的代表:https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html

    这是覆盖和动画单元格的方法:

    – tableView:willDisplayCell:forRowAtIndexPath:
    

    【讨论】:

    • 我很确定这还不够。它只会在单元格变得可见时通知您,而不会告诉您它将在哪里显示。
    • 你是对的。但是,如果您成为滚动视图协议 :scrollViewDidScroll: 方法的委托,然后从 TableView 获取 indexPathsForVisibleRows 并为这些行设置动画,该怎么办。当然,您必须跟踪您开始制作动画的单元格和未制作动画的单元格。无论如何,也许它仍然是一个更清洁的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多