отключить прокрутку в UITableView (iPhone SDK 3.0) - PullRequest
21 голосов
/ 06 августа 2009

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

tableView.scrollEnabled = NO:

или даже

tableView.userInteractionEnabled = NO;

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

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

Ответы [ 6 ]

49 голосов
/ 19 декабря 2009

Вы пытались использовать self.tableView.scrollEnabled = NO;

Я часто пробовал, чтобы код из Интернета не работал, просто из-за отсутствия префикса self. Я просто попробовал это без проблем.

Я не знаю, работает ли это при динамическом включении и выключении. По крайней мере, он работает для постоянных настроек при инициализации объекта ...

19 голосов
/ 09 августа 2010

Если вы используете UITableViewController, у вас также есть свойство tableView, не требующее приведения. Это работает для меня:

self.tableView.scrollEnabled = NO;

Дайте мне знать, если это работает для вас.

6 голосов
/ 08 декабря 2013

Вы пробовали на раскадровке отключить прокрутку?

Scrolling Enabled : NO

2 голосов
/ 14 июля 2012

Ни один из этих ответов не работал в моем случае. Табличное представление постоянно прокручивалось, хотя каждый scrollView был отключен.

Наконец, я нашел решение в здесь , утверждая, что UITableViewController делает это «для меня» всякий раз, когда клавиатура скрывает редактируемый UITextView.

Решение состоит в том, чтобы наследовать от UIViewController вместо UITableViewController и самостоятельно реализовать необходимые функции таблиц.

2 голосов
/ 08 апреля 2010

Я пытался:

[(UIScrollView*)[self view] setScrollingEnabled:NO];

и это сработало ([self view] - это мое представление о текущем контроллере представления, то есть UITableView).

Дело в том, что я получаю предупреждение:

«UIScrollView» может не отвечать на «-setScrollingEnabled:»

Честно говоря, это свойство "scrollEnabled", но, тем не менее, оно работает с вышеупомянутым кодом!

Итак, «правильный» способ сделать что-то должен быть:

[(UIScrollView*)[self view] setScrollEnabled:NO];

Почему это работает по-другому, меня смущает ...

1 голос
/ 23 июня 2015

, если вы хотите прокрутить только если его содержимое не видно, тогда установите:

yourTableview.alwaysBounceVertical = NO;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...