我正在使用iPhone SDK 3.1.3。我有一個UITableViewController
從其他控制器獲取數據。表格視圖作爲子視圖添加到主視圖中,但框架已設置爲不可見。通過點擊按鈕,表格視圖框架被更新並且在主視圖上滑動。UITableView滾動到特定位置
表格視圖出現,我滾動到最後一行。如果我選擇最後一行,我會用更多的數據重新加載表格。該表獲得更多數據更新。一切工作正常,除了滾動位置始終是頂部。
我需要滾動位置是我點擊加載更多數據的最後一行。我保存滾動位置並在加載更多數據後調用下面的代碼。它執行沒有問題,但滾動位置始終是最高的。
[theTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:savedScrollPosition inSection:0] atScrollPosition:savedScrollPosition animated:NO];
上述似乎沒有效果。 ViewWillAppear:
ViewDidAppear:
不會觸發,我被告知如果視圖控制器在代碼中被實例化,情況就是這樣,它們不會觸發。請重新加載表格([theTableView reloadData]
)後,請幫助我確定如何以及何時設置滾動位置,以便它位於我點擊的行上。
代碼重新加載表視圖&滾動
////performAction will notify the tableviewcontroller which will result in didPerformAction being called
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == lastRow)
{
savedScrollPosition = lastRow;
//perform the action
[controller performAction];
}
}
- (void) didPerformAction:(NSNotification *)obj
{
[theTableView reloadData];
[theTableView
scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:savedScrollPosition inSection:0]
atScrollPosition:UITableViewScrollPositionBottom
animated:NO];
}
這個語句中的savedScrollPosition是什麼 – 2015-07-10 08:31:14