Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to detect tap on clear part of UITableView?

I have view controller with UITableView. Height of table view is static and == height of screen. Number of rows in table can change and sometimes it might be a situation when number of rows is less than number of rows which can be visible, so appears some clear area on bottom of table. Can i detect tap on it without gesture recognizer? Are there some delegate methods of UITableView?

like image 742
Victorianec Avatar asked Sep 11 '25 01:09

Victorianec


1 Answers

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)
like image 167
Connor Neville Avatar answered Sep 12 '25 16:09

Connor Neville