2010-01-16 68 views
3

一旦我的UITableView已經填充數據,我想滾動到一個特定的索引。我認爲這是你如何做到這一點:iPhone - 滾動UITableView索引

[[self tableView] scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:3] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; 

問題是當我應該運行這個。你怎麼知道表何時完成加載數據?

回答

4

首先,您應該使用indexPathForRow:inSection:作爲表視圖中的索引路徑。

如果您希望在加載表視圖後執行某些操作,請使用視圖控制器的viewDidAppear:,如果這太早,請使用performSelector:withObject:afterDelay:排列選擇器。

+0

我曾嘗試過viewDidLoad,但那還爲時過早。我要去嘗試viewDidAppear。我寧願不使用計時器,因爲這非常黑客。從數據源中提取所有項目後是否確實沒有事件或派發的內容? – quano 2010-01-17 14:54:40

+0

不是。這些項目不是*全部*提取 - AFAIK查詢您的數據源/代理的所有項目的高度,然後針對只顯示可見行的單元格,以節省內存和處理器資源。還有一種方法 - 如果你使用'reloadData',你可以肯定的是,在方法調用返回之後,所有的更新都被執行了,包括繪製單元格等。也許這會有所幫助。 – 2010-01-17 15:50:48

+0

我試過viewDidAppear,似乎工作。 – quano 2010-01-17 17:32:25