как остановить UITextView для прокрутки UITableView - PullRequest
2 голосов
/ 05 марта 2012

У меня есть пользовательская таблица с тремя ячейками.В третьей ячейке у меня есть textView.Три ячейки занимают достаточно места на экране, поэтому остается только место на клавиатуре.Я не хочу, чтобы что-либо было подвижным или прокручиваемым, поэтому я использовал self.tableView.scrollEnabled = NO;.

Это прекрасно работает с более ранней версией iOS.Однако с iOS 5 это показывает странное поведение.Когда я ввожу несколько строк текста в textView, вся таблица прокручивается вверх.В идеале таблица должна оставаться там, и только textView должен прокручиваться.

После многих попыток я обнаружил, что textView расположен так близко к клавиатуре (так как textView помещается в последнюю ячейку и чуть ниже нее.клавиатура), что iOS пытается переместить textView вверх, для чего она прокручивает всю таблицу вверх.Есть ли способ остановить эту автоматическую прокрутку tableView.

Я обнаружил ту же проблему, упомянутую здесь Отключить UITextView, прокручивая содержащее представление? , однако на него также пока нет ответа.И упомянутый там обходной путь не будет работать для меня, так как само мое содержащее представление прокручиваемо (UITableView)

Ответы [ 2 ]

3 голосов
/ 16 июня 2012

для меня, я работаю с прокруткой в ​​виде таблицы, как это

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if(self.tableView.contentOffset.y != 0)
    {
        self.tableView.contentOffset = CGPointMake(0, 0);
    }
}
0 голосов
/ 06 марта 2012

Одним из решений является добавление совершенно нового подпредставления на лету.Добавьте UITextView к self.view и задайте ему кадр, соответствующий той же позиции на экране.Теперь табличное представление не должно прокручиваться.

В случае, если это не сработает, поскольку self.view является табличным представлением, измените ваш контроллер на класс UIViewController и самостоятельно реализуйте методы делегата и источника данных (т.е.упомянуть их в декларации @interface).В этом случае табличное представление должно быть подпредставлением self.view, и вы должны подключить его через IB.

Перед тем как убрать клавиатуру, скопируйте содержимое в исходное текстовое представление.

...