Подтвердить что ты не робот

Отключить прокрутку в UITableView (iPhone SDK 3.0)

Я пытаюсь отключить прокрутку в UITableView при редактировании UITextField, встроенного в UITableViewCell. Это просто для предотвращения прокрутки ячейки вне поля зрения при редактировании (а также во избежание проблем со связанными ячейками "Переработка" ). Во время поиска в Интернете я видел, что кто-то предложил очевидное:

tableView.scrollEnabled = NO:

или даже

tableView.userInteractionEnabled = NO;

Это не работает (хотя бы для меня... iPhone SDK 3.0, пробовал симулятор) Я установил эти свойства как НЕТ, даже проверю, зарегистрировав, что для свойств установлено значение НЕТ, но UITableView продолжает нормально реагировать на события касания. И это также счастливо свитки. Я не был бы так обеспокоен, если бы кто-то в сети не утверждал, что это действительно работает.

Я что-то упустил? Или является единственным альтернативным подклассом UITableView, чтобы снова использовать функциональность, доступную в своем суперклассе (UIScrollView)?

4b9b3361

Ответ 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;

Здесь, если ваш контент виден, тогда ваше табличное представление не будет прокручиваться