我的桌面视图单元格有问题。使用带有嵌入式导航控制器的segue从详细视图返回到主表视图后,我无法禁用表格单元格选择的突出显示。表单元格仍处于选中状态。当我单击其中一个以显示详细信息时,我不希望禁用表格单元格选择。我只想在从详细信息视图返回后禁用它们。
答案 0 :(得分:39)
我现在明白了。我这样解决了。这是一个简单的理论。
我们在选择行
时取消选择它
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
答案 1 :(得分:4)
您还可以禁用单元格选择突出显示:
import Foundation
class CustomTableViewCell: UITableViewCell
{
required init(coder aDecoder: NSCoder)
{
fatalError("init(coder:) has not been implemented")
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?)
{
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.selectionStyle = UITableViewCellSelectionStyle.None
}
}
答案 2 :(得分:3)
Swift3解决方案:
它将允许选择,这是swift 3的修复。
cell.selectionStyle = UITableViewCellSelectionStyle.none
答案 3 :(得分:3)
我喜欢这样做的方式,如果您启用了单一选择,则使用 viewDidAppear 方法。这样,用户可以在返回tableView时看到取消选择动画。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
if let selectedRow = tableView.indexPathForSelectedRow {
tableView.deselectRow(at: selectedRow, animated: true)
}
}
答案 4 :(得分:1)
self.selectionStyle = UITableViewCellSelectionStyle.None
在覆盖func awakeFromNib()中也应该足够了:)
采用上述代码时出现致命错误。
答案 5 :(得分:0)
Swift 3
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}