iOS 如何讓UITableView顯示時自動滾動到底部(不閃動)
阿新 • • 發佈:2019-02-14
最近在研究XMPP即時通訊,在從好友列表進入聊天頁面的時候需要UITableView(訊息列表)自動滾動到底部,如下所示:
剛開始試了兩種方法,
第一種是在viewDidAppear中設定tableView(scrollView)的contentOffset,
[chatTableView setContentOffset:CGPointMake(0, chatTableView.contentSize.height-chatTableView.frame.size.height) animated:NO];
結果是雖然滾動到底部,但會閃動一下。
第二種方法就是在viewDidAppear中:
NSIndexPath *indexpath = [NSIndexPath indexPathForRow:_dataArr.count-1 inSection:0];
[chatTableView scrollToRowAtIndexPath:indexpath atScrollPosition:UITableViewScrollPositionBottom animated:NO];
結果和第一種方法是一樣的。
然後突然想起UITableView其實在在呼叫numberOfRowsInSection時就確定了其contentSize,那麼在這個方法裡是不是可以通過改變其contentOffset來達到目的呢,試了一下,果不其然,tableView滾動到底部,且沒有閃動。