UITableview返回不正确的索引路径行[重复]

Posted

技术标签:

【中文标题】UITableview返回不正确的索引路径行[重复]【英文标题】:UITableview returning incorrect index path row [duplicate] 【发布时间】:2019-02-19 18:39:44 【问题描述】:

我有一个非常简单的 5 行表格设置,用于设置屏幕。每当单击第一个单元格时,它会突出显示但不调用 didselectrow。如果我单击不同的行,该行将调用 did select 函数但返回不正确的行。然后我可以单击第一行,它会返回但也有不正确的行。我在项目中设置了几个与此类似的表,它们没有这种行为。单元格正确突出显示,所以我认为我没有布局/视图问题。我没有任何约束警告,当我使用视图调试器时,我没有遇到任何覆盖表格单元格的视图。感谢所有帮助!

let settingsArray:[String] = ["Notifications","Account","bar","Help","Privacy Policy"]

extension SettingsViewController: UITableViewDataSource,UITableViewDelegate 
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return settingsArray.count
    

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        print("\(indexPath.row) setting \(settingsArray[indexPath.row])")
        if settingsArray[indexPath.row] != "bar" 
            let cell = tableView.dequeueReusableCell(withIdentifier: "settingOption") as! SettingsOptionCell
            cell.configure(setting: settingsArray[indexPath.row])
            self.settingsTable.rowHeight = 65
            cell.isUserInteractionEnabled = true
            return cell
         else 
            let cell = tableView.dequeueReusableCell(withIdentifier: "settingBar")
            self.settingsTable.rowHeight = 70
            cell?.isUserInteractionEnabled = false
            return cell!
        

    

    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) 
        print("clicked \(indexPath.row)")


【问题讨论】:

【参考方案1】:

替换

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 

【讨论】:

我从未感到如此愚蠢!!!感谢第二双眼睛! 该死的,我也遇到了同样的问题.. 花了 3 个小时才弄清楚出了什么问题!!非常感谢

以上是关于UITableview返回不正确的索引路径行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何为uitableview的所有行和所有部分创建索引路径?

UITableView 未显示正确的行数

使用“插入”行初始化 UITableView

iPhone:在分组 UITableview 的每个部分中重复行

表从数组中删除索引路径行值

如何修复 didSelectRowAt 返回的错误 indexPath?