- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个 tableView
,我为其创建了自定义选择和取消选择操作(淡入和淡出 View )。我遇到了一个问题,即在返回 tableView
时未调用取消选择操作。我已将必要的取消选择代码添加到我的 viewWillAppear
中,因此似乎无法确定可能出了什么问题。这个用例是否有不同的方法?
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//Deselect row on unwind
if let path = folderTableView.indexPathForSelectedRow {
folderTableView.deselectRow(at: path, animated: true)
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Select")
switch indexPath.section {
case 2:
let cell = tableView.cellForRow(at: indexPath) as! FolderTagTableViewCell
cell.folderTagSelectionBKG.alpha = 1.0
default:
let cell = tableView.cellForRow(at: indexPath) as! FolderTableViewCell
cell.folderSelectionBKG.alpha = 1.0
}
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
print("Should deselect")
switch indexPath.section {
case 2:
let cell = tableView.cellForRow(at: indexPath) as! FolderTagTableViewCell
UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseInOut, animations: {
cell.folderTagSelectionBKG.alpha = 0
})
default:
let cell = tableView.cellForRow(at: indexPath) as! FolderTableViewCell
UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseInOut, animations: {
cell.folderSelectionBKG.alpha = 0
})
}
}
最佳答案
来自 deselectRow(at:animated:) 的文档
Calling this method does not cause the delegate to receive a
tableView(_:willDeselectRowAt:)
ortableView(_:didDeselectRowAt:)
message, nor does it sendselectionDidChangeNotification
notifications to observers.Calling this method does not cause any scrolling to the deselected row.
一个解决方案是将didDeselectRowAt
中的代码移动到一个额外的方法中
func deselectRowAnimated(at indexPath : IndexPath)
{
switch indexPath.section {
case 2:
let cell = tableView.cellForRow(at: indexPath) as! FolderTagTableViewCell
UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseInOut, animations: {
cell.folderTagSelectionBKG.alpha = 0
})
default:
let cell = tableView.cellForRow(at: indexPath) as! FolderTableViewCell
UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseInOut, animations: {
cell.folderSelectionBKG.alpha = 0
})
}
}
并在 viewWillAppear
和 didDeleselect
中调用它
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//Deselect row on unwind
if let indexPath = folderTableView.indexPathForSelectedRow {
deselectRowAnimated(at: indexPath)
}
}
...
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
deselectRowAnimated(at: indexPath)
}
选择行
关于ios - viewWillAppear 不调用 didDeselectRowAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58849654/
这个问题在这里已经有了答案: Why is -didDeselectRowAtIndexPath not being called? (12 个答案) 关闭 5 年前。 我有一个 UITableVi
当用户取消选择一个单元格时,我试图删除数组中的一个项目。我明白为什么我的代码不起作用,基本上,数组可能包含 5 个元素,如果有 100 个单元格并且用户选择了单元格 10,尝试通过 indexPath
我目前有一个 tableView,我为其创建了自定义选择和取消选择操作(淡入和淡出 View )。我遇到了一个问题,即在返回 tableView 时未调用取消选择操作。我已将必要的取消选择代码添加到我
当我使用 searchController 重新加载我的 TableView 时,我正确地看到了那些被选中的用户,因为我将它们添加到一个数组 (utentiSelezionati) 中并且我执行了检查
这个问题在这里已经有了答案: Why is -didDeselectRowAtIndexPath not being called? (12 个答案) 关闭 4 年前。 我有一个虚拟动态 Table
我不明白为什么我不能切换选定的表格行。我在 didSelectRowAt 中成功设置了 accessoryType。但是我似乎无法在 didDeselectRowAt 中将 accessoryType
我是一名优秀的程序员,十分优秀!