【问题标题】:swift4: TableView setSelected function called twice on iPad clickswift 4: TableView set Selected 函数在 iPad 点击上调用了两次
【发布时间】:2018-07-07 21:04:31
【问题描述】:

我是 swift4 的新手,这是我的第一个表格视图实现。

我正在使用 iPad 开发应用程序,但无法解决点击时两次调用表格视图 setSelected 函数且所选值始终等于 true 的问题

正如我在网络上看到的那样,这种行为只发生在iPad

那么解决这个问题的方法是什么

我的代码是:

@IBOutlet weak var checkImage: UIImageView!    
var showing = false

 override func setSelected(_ selected: Bool, animated: Bool) {

        super.setSelected(selected, animated: animated)
        if selected {
            if showing == false {
                checkImage.isHidden = false
                showing = true
            }
            else {
                checkImage.isHidden = true
                showing = false
            }
        }
    }

【问题讨论】:

  • 该代码在哪里?在您的自定义UITableViewCell 课程中?如果你在setSelected 中设置了Xcode 断点,哪些函数会调用setSelected

标签: ios swift uitableview ipad swift4


【解决方案1】:

尝试在didSelectRow 中使用deselectRow(at:animated:)

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at:indexPath animated:true)
}

【讨论】:

  • 这是代替setSelected函数还是附加?
  • 有了这个,你应该得到一次 setSelected 调用,所以你可以另外使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多