1. 程式人生 > >iOS 如何讓UITableView顯示時自動滾動到底部(不閃動)

iOS 如何讓UITableView顯示時自動滾動到底部(不閃動)

最近在研究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滾動到底部,且沒有閃動。