ios - 如何在拖动时取消突出显示表格单元格
问题描述
我们如何在tap+hold+drag上取消突出显示单元格。我正在使用以下代码来更改单元格内视图的背景,以使其具有突出显示效果。当我点击单元格时,按住并拖动它应该不会突出显示。
我尝试使用didUnhighlightRowAt
,但它在单元点击时太快地取消突出显示。
这不是长按手势。请参阅 Apple 的设置应用程序。按住任何菜单,它会突出显示,然后开始拖动,它将取消突出显示单元格。这就是我想要实现的。
如何做到这一点?
func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
if let cell = tableView.cellForRow(at: indexPath) as? TableViewCell {
cell.bgView.backgroundColor = .red
}
}
解决方案
滚动开始时触摸/取消突出显示的突出显示是表格视图单元格的默认行为。
通过实施didHighlightRowAt
,您正在反击这种行为。
相反,在您的单元类中,实现setHighlighted
:
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
UIView.animate(withDuration: 0.3, animations: {
self.bgView.backgroundColor = highlighted ? .red : .clear
})
}
推荐阅读
- java - 如何检测用户是否已确认在 PackageInstaller (Android) 中安装
- python - 从两个列表中创建具有多个值的 dict。将多个键组合为一个
- javascript - 如何更改纯 CSS JS 中的 ID?为什么我的代码不起作用?
- r - 提取文件夹中所有文件的列名
- cyclejs - Cycle.js:处理文件拖放的最佳方法是什么
- c# - C# 字典之间的比较
和输入值 - javascript - 如何避免图标按钮保持选中状态?
- python - 如何复制带有子文件夹的文件夹结构
- dictionary - 如果满足条件,则在我的字典中添加一个键
- wpf - 如何在 WPF 的 TextBox 数据模板中使用 MenuItem?