【问题标题】:Stopping a UITableViewCell button from being reused阻止 UITableViewCell 按钮被重用
【发布时间】:2016-03-30 10:40:23
【问题描述】:

我有一个充满歌曲的表格视图,每个单元格都有一个播放按钮。一旦按下播放按钮,歌曲就会播放,并且单个单元格中的播放按钮会变成停止按钮。现在这个单元格是使用视图标签完成的,所以当您进一步向下滚动并重复使用单元格时,进入视图的随机单元格有一个停止按钮,即使它们从未被选中。防止这种重用发生的最佳方法是什么?我应该将我的代码重构为自定义 UITableViewCell 类并防止在按钮上重用吗?或者这里有更快的工作吗?

【问题讨论】:

  • 你试过meda的回答吗?你还得到重复使用打破你的细胞吗?
  • 您应该修复代码,而不是禁用单元重用。您没有发布它,所以我们无法帮助您。但是有一个建议:使用视图的标签是一个糟糕的解决方案——几乎总是如此。尤其是细胞。

标签: ios objective-c uitableview reusability


【解决方案1】:

在重复使用单元格时,您应该记住歌曲的播放状态和更新按钮状态(与更新标题、艺术家等其他属性的方式相同)。

例如,您可以将播放歌曲索引保存在控制器私有变量中(最初设置为-1),并在重用单元格时将其与indexPath.row进行比较。

【讨论】:

  • 最好将其存储在数据模型中的某个位置,但您的基本前提是准确的。
  • 不完全确定您在这里比较私有变量的意思。 @Avi 在这种情况下有点棘手,我们从 Parse 调用我们的 tableview 数据,因此没有本地数据模型来存储播放状态。
  • @pennyloaf:使用解析不能解释没有本地模型。
  • “数据模型”不一定是一些类的集合。数据模型包括保存有关模型的数据的任何数据结构。这包括是否正在播放歌曲。这些数据是暂时的并不重要。相反,视图只是检查模型(可以是相关类中的单个实例变量)以查看正在播放的歌曲(如果有)。
猜你喜欢
  • 2018-03-05
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
相关资源
最近更新 更多