Reputation: 1076
I have a problem with a UITableView not detecting touches.
In an iPhone-only app, I have a UIViewController, which containts:
The labels have a dynamic height, because they contain some text that I must retrive from the web, so I'm using auto layout.
I'm setting the content size of the UIScrollView inside the viewDidLayoutSubviews
method, and I'm doing this by summing UITableView.frame.origin.y
and its height.
Here comes the problem: when the labels contain only some words and the UITableView does not exceed the iPhone screen size, everything works ok. But when they grow, and the UITableView gets pushed down, when I scroll down I can't click on the cell anymore. Also, if when loading the view the table is half visible and half not, I can click the visible cells, but if I scroll down, I can't click the others.
I'm using swift 2 and Xcode 7.
Here is an example:
Clickable:
Unclickable:
Upvotes: 2
Views: 3935
Reputation: 9540
Do the following thing:
yourView.clipToBounds = true
Now, if UITableView
does not appears means your UIView
is not same bigger to hold down UITableView
.
Make sure that your UIView
height is bigger to hold the contents in it and then try to tap on it.
Updated:
If you are using AutoLayout
, then do the following thing.
UIView
UIView
Now, in viewDidLayoutSubviews
change the constraint of UIView
to UITableView
contentSize
height.
self.heightConstraint = self.tableView.contentSize.height
Let me know, if this helps!
Upvotes: 4
Reputation: 717
If you use Autolayout
, no need to specify contentSize
to UIScrollView
as it will automatically expand by taking the height of its subview.
In your case, increase the height of the Base UIView
(content view as mentioned by you) which holds the tableView
when the tableView height
increases.
UITableView
becomes unresponsive when it extends below its container view.
Upvotes: 0
Reputation: 7893
Adding some info to the @Rémy Virin's answer here:
From Apple Documentation, you shouldn't embed a UITableViewinside a UIScrollView.
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.
Addition:Solution Since you want to scroll the content above table also, the one solution is place a Header View
for the Table and place the Content over there to make it Scroll along the Table View.
Upvotes: 0