У меня проблема с UITableView
, особенно с scrollToRowAtIndexPath
. Здесь мы устанавливаем section-header-height и row-height соответственно. Позже, когда отображается клавиатура, я изменяю размер таблицы и прокручиваю текущую ячейку, используя scrollToRowAtIndexPath
. Проблема в том, что после попытки 3 разных типов позиционирования, только UITableViewScrollPositionTop
позиционируется правильно, в то время как UITableViewScrollPositionMiddle
и UITableViewScrollPositionBottom
неуместны. Вот скриншоты:
![UITableViewScrollPositionTop](https://i.stack.imgur.com/evjgV.png)
![UITableViewScrollPositionMiddle/Bottom](https://i.stack.imgur.com/yMUdF.png)
Как и на показанных изображениях, верхнее позиционирование размещает ряд сверху, а среднее и нижнее позиционирование - примерно на 1 ряд от среднего ряда (для них обоих). Это происходит только в этом представлении (оно отлично работает в другом представлении).
Вид таблицы имеет фиксированное поле и гибкую ширину / высоту (обозначены всеми метками ярко-красного цвета в IB).
Я пытался проверить точку начала таблицы, она указала 0,0. Когда я перемещаю origin.y на несколько пикселей, табличное представление смещается на эту величину вниз, поэтому это не было вызвано исходной точкой табличного представления.
Я использовал этот код для получения indexPath перед изменением размера (обратите внимание, что это хорошо работает в других представлениях):
NSIndexPath *indexPath = [tblView indexPathForRowAtPoint:self.frame.origin];
//resize the tableview
[tblView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
Есть идеи, почему происходит смещение позиции?
Заранее спасибо.