I\'m trying to disable scrolling in a UITableView
when editing a UITextField
embedded in a UITableViewCell
.
This is just to prevent th
I tried:
[(UIScrollView*)[self view] setScrollingEnabled:NO];
and it worked ([self view] is my view of the current view controller, i.e., a UITableView).
The thing is, I get a warning:
'UIScrollView' may not respond to '-setScrollingEnabled:'
In all honesty, the property is "scrollEnabled", but it works nonetheless with the aforementioned code!
So, the "right" way to do things, should be:
[(UIScrollView*)[self view] setScrollEnabled:NO];
Why it also works the other way, is confusing me...
If you're using UITableViewController
, you also have a tableView
property, with no casting needed. This works for me:
self.tableView.scrollEnabled = NO;
Let me know if that works for you.
if you want to scroll only if its content is not visible then set:
yourTableview.alwaysBounceVertical = NO;
Here if your content is visible then your tableview will not scroll
Did you try on storyboard unselect scrolling enabled?
None of these answers worked in my case. Table view kept scrolling ever though every scrollView was disabled.
Finally, I've found solution in here, claiming that UITableViewController
does this "for me" whenever keyboard hides the UITextView being edit.
Solution is to inherit from UIViewController
instead of UITableViewController
and implement the required table functionality myself.
Did you try using
self.tableView.scrollEnabled = NO;
?
I've often tried that code from the web didn't work, simply because of a lack of the prefix self. I just tried this out without a problem.
I don't know if this work when turning it on and off dynamically. It does at least work for permanent settings when initializing the object...