Отключить прокрутку в UITableView (iPhone SDK 3.0)
Я пытаюсь отключить прокрутку в UITableView
при редактировании UITextField
, встроенного в UITableViewCell
.
Это просто для предотвращения прокрутки ячейки вне поля зрения при редактировании (а также во избежание проблем со связанными ячейками "Переработка" ).
Во время поиска в Интернете я видел, что кто-то предложил очевидное:
tableView.scrollEnabled = NO:
или даже
tableView.userInteractionEnabled = NO;
Это не работает (хотя бы для меня... iPhone SDK 3.0, пробовал симулятор)
Я установил эти свойства как НЕТ, даже проверю, зарегистрировав, что для свойств установлено значение НЕТ, но UITableView продолжает нормально реагировать на события касания.
И это также счастливо свитки.
Я не был бы так обеспокоен, если бы кто-то в сети не утверждал, что это действительно работает.
Я что-то упустил?
Или является единственным альтернативным подклассом UITableView, чтобы снова использовать функциональность, доступную в своем суперклассе (UIScrollView)?
Ответы
Ответ 1
Вы пытались использовать
self.tableView.scrollEnabled = NO;
?
Я часто пытался, чтобы этот код из Интернета не работал, просто из-за отсутствия префикса. Я просто попробовал это без проблем.
Я не знаю, работает ли это при динамическом включении и выключении. Он, по крайней мере, работает для постоянных настроек при инициализации объекта...
Ответ 2
Если вы используете UITableViewController
, у вас также есть свойство tableView
, без необходимости кастинга. Это работает для меня:
self.tableView.scrollEnabled = NO;
Сообщите мне, если это сработает для вас.
Ответ 3
Пробовали ли вы отключить прокрутку раскадровки?
![Scrolling Enabled : NO]()
Ответ 4
Я пробовал:
[(UIScrollView*)[self view] setScrollingEnabled:NO];
и он работал ([self view] - это мой взгляд на текущий контроллер вида, т.е. UITableView).
Дело в том, что я получаю предупреждение:
'UIScrollView' может не отвечать на '-setScrollingEnabled:'
По правде говоря, свойство "scrollEnabled", но оно работает, тем не менее, с вышеупомянутым кодом!
Итак, "правильный" способ сделать вещи должен быть:
[(UIScrollView*)[self view] setScrollEnabled:NO];
Почему это также работает по-другому, меня смущает...
Ответ 5
Ни один из этих ответов не работал в моем случае. Просмотр таблицы продолжал прокручиваться, хотя каждый scrollView был отключен.
Наконец, я нашел решение в здесь, утверждая, что UITableViewController
делает это "для меня" всякий раз, когда клавиатура скрывает редактирование UITextView.
Решение состоит в том, чтобы наследовать от UIViewController
вместо UITableViewController
и реализовать собственную функциональность таблицы.
Ответ 6
если вы хотите прокручивать, только если его содержимое не отображается, установите:
yourTableview.alwaysBounceVertical = NO;
Здесь, если ваш контент виден, тогда ваше табличное представление не будет прокручиваться