【发布时间】:2017-11-15 18:14:05
【问题描述】:
我有一个将allowsMultipleSelection 设置为true 的tableView。在自定义 UITableViewCell 子类中,我已经覆盖了setSelected:animated。当我选择单元格(通过点击)以及滚动时,这会被调用,因为单元格正在被重用。现在,我希望animated 参数的用例能够为用户交互设置动画,而不是在状态由于单元重用而简单更改时设置动画。然而,animated 总是作为 false 传递,不管它是如何被调用的。当 UIKit 的东西调用 animated 时,它是真的吗?
当然,我可以通过 (a) 删除 allowsMultipleSelection,(b) 实现 UITableViewDelegate 的 didSelect 和 didDeselect 方法,以及 (c) 调用 @987654330 来明确区分用户交互和单元重用@ 和 animated: true 来自这两种方法。但这似乎只是为了改变一个小细节而复制了很多原生行为;如果我能以某种方式让 tableView 在用户启动选择或取消选择时默认传递animated: true,我可以保存一个委托实现并让我的代码更直观地阅读(至少对我而言)。有什么办法可以让 tableViews 做到这一点?
编辑:更不用说,从didSelect 和didDeselect 委托方法显式调用setSelected 并没有真正起作用,因为它仍然也被tableView调用。 p>
【问题讨论】:
标签: ios swift uitableview uikit