All of the supplied answers, including the accepted answer, add a UITapGestureRecognizer
to the tableView
; while this will work, I've found that this gesture recognizer can interfere with row taps and triggering didSelectRowAtIndexPath
in a somewhat unpredictable/nondeterministic way.
If you want to detect taps in the "blank space" as well as in rows, I highly suggest adding a background view to your table, and add the gesture recognizer there:
let tap = UITapGestureRecognizer(target: self, action: #selector(tableTapped))
self.tableView.backgroundView = UIView()
self.tableView.backgroundView?.addGestureRecognizer(tap)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…