How to use UITableView inside UIScrollView and receive a cell click?
I have DiscountListTableViewController
that is shown as a separate screen in my app. But there's another screen (PlaceDetailsViewController
) where I need to show related discounts at the bottom.
Currently, PlaceDetailsViewController.view
has UIScrollView
as a container and I'm adding DiscountListTableViewController.tableView
to the this UIScrollView.content
container in viewDidLoad
of PlaceDetailsViewController
. This works and the table view is shown correctly, however unable to receive cell clicks.
I know UITableView
inherits from UIScrollView
and it's somehow not advised (but not restricted). However, from loose coupling point of view, every component should be designed in a way it could be independently used elsewhere, and it's DiscountListTableViewController
in my case.
PlaceDetailsViewController
component just needs DiscountListTableViewController
as-is, so there's no logic reason why it can't be used directly. Any suggestions?
Answer : Don't do this.
UITableview
is inherited from ----> UIScrollView : UIView : UIResponder : NSObject
Apple says :
Important: You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled.
Not advised ? It kind of felt like "dont do" after reading this.The unpredictability is never a good behaviour for the app
Important: You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled.