перезагрузить uitableview в нижнюю ячейку - PullRequest
5 голосов
/ 11 марта 2011

я создаю приложение чата, и я отображаю каждое сообщение через ячейку в окне uitableview. Однако каждый раз, когда я перезагружаю таблицу, он отображает содержимое из первой ячейки вниз. Я хочу расположить мой стол таким образом, чтобы при перезагрузке он «прокручивался» до конца, отображая самое последнее сообщение.

Я провел некоторые исследования по документам, но я очень плохо знаком с программированием, поэтому я не уверен, как его настроить. Я думаю, что мне нужен метод reloadRowsAtIndexPaths, но я не уверен, как его реализовать. Спасибо!

Ответы [ 4 ]

6 голосов
/ 11 марта 2011

Вы должны вставить еще одну строку в конец табличного представления, когда вы делаете это, вам нужно знать номер последней строки.

Таким образом, вы можете вызвать эту функцию, чтобы вставить новую строку

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

вот так

[tableView insertRowsAtIndexPaths:[NSIndexPath indexPathForRow:lastRow inSection:0] withRowAnimation:UITableViewRowAnimationNone];
lastRow++;

и затем анимируйте табличное представление, чтобы перейти к последней строке, вызвав эту функцию.

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated

вот так

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow inSection:0] atScrollPosition:UITableViewScrollPositionButtom animated:YES];
5 голосов
/ 01 сентября 2011

Используйте это

int lastRowNumber = [tableView numberOfRowsInSection:0]-1;
NSIndexPath* ip = [NSIndexPath indexPathForRow:lastRowNumber inSection:0];
[tableView scrollToRowAtIndexPath:ip atScrollPosition:UITableViewScrollPositionTop animated:YES];

Надеюсь, что это решить проблему Ur.

0 голосов
/ 29 декабря 2013

[self.tableView reloadData];[self.tableView scrollToRowAtIndexPath: [NSIndexPath indexPathForRow: [self.messages count] -1 inSection: 0] atScrollPosition: UITableViewScrollPositionBottom animated: YES];

0 голосов
/ 11 марта 2011

Прокрутку табличного представления можно легко выполнить с помощью метода –scrollToRowAtIndexPath:atScrollPosition:animated::

[tableView scrollToRowAtIndexPath: [NSIndexPath indexPathForRow: 1000 inSection: 0] atScrollPosition: UITableViewScrollPositionBottom animated: YES]; 1004 *

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