Alex Rivera | Logout

disable scrolling in a UITableView (iPhone SDK 3.0)

Asked 2009-08-06T07:03:47.747
21

I'm trying to disable scrolling in a UITableView when editing a UITextField embedded in a UITableViewCell. This is just to prevent the cell from being scrolled out of sight when edited (and also to avoid some related cell "Recycling" problems). While googling around I've seen that somebody suggested the obvious:

tableView.scrollEnabled = NO:

or even

tableView.userInteractionEnabled = NO;

This does not work though (at least for me... iPhone SDK 3.0, tried on simulator) I set these properties to NO, I even check by logging that the properties are set to NO, but the UITableView keeps on responding normally to touch events. And it also happily scrolls. I wouldn't be that worried if somebody on the net were not claiming that this actually works.

Am I missing something? Or is the only alternative subclassing UITableView to make a functionality available in its superclass (UIScrollView) work again?

Edit
Report

1 Answer

2

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...

answered 2010-04-08T11:16:16.220

Your Answer