iOS UITableView scrollToRowAtIndexPath ведет себя неправильно - PullRequest
1 голос
/ 13 декабря 2011

У меня проблема с UITableView, особенно с scrollToRowAtIndexPath. Здесь мы устанавливаем section-header-height и row-height соответственно. Позже, когда отображается клавиатура, я изменяю размер таблицы и прокручиваю текущую ячейку, используя scrollToRowAtIndexPath. Проблема в том, что после попытки 3 разных типов позиционирования, только UITableViewScrollPositionTop позиционируется правильно, в то время как UITableViewScrollPositionMiddle и UITableViewScrollPositionBottom неуместны. Вот скриншоты:

UITableViewScrollPositionTopUITableViewScrollPositionMiddle/Bottom

Как и на показанных изображениях, верхнее позиционирование размещает ряд сверху, а среднее и нижнее позиционирование - примерно на 1 ряд от среднего ряда (для них обоих). Это происходит только в этом представлении (оно отлично работает в другом представлении).

Вид таблицы имеет фиксированное поле и гибкую ширину / высоту (обозначены всеми метками ярко-красного цвета в IB).

Я пытался проверить точку начала таблицы, она указала 0,0. Когда я перемещаю origin.y на несколько пикселей, табличное представление смещается на эту величину вниз, поэтому это не было вызвано исходной точкой табличного представления.

Я использовал этот код для получения indexPath перед изменением размера (обратите внимание, что это хорошо работает в других представлениях):

NSIndexPath *indexPath = [tblView indexPathForRowAtPoint:self.frame.origin];
//resize the tableview
[tblView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];

Есть идеи, почему происходит смещение позиции?

Заранее спасибо.

1 Ответ

3 голосов
/ 14 декабря 2011

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

Это потому, что предыдущий разработчик установил размер содержимого вкладок снизу прокрутки в UITableViewдо 100 в xib-файле (я думаю, значение по умолчанию должно быть 0).Это изображение показывает, где я нашел это свойство: enter image description here

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