2013-01-08 78 views
6

當使用selectRowAtIndexPath:animated:scrollPosition:時,我傳遞的是UITableViewScrollPositionNone。儘管有這個名字,但我希望tableview能夠在必要時進行滾動,以便行可見(如果已經可見,則不滾動)。UITableViewScrollPositionNone不滾動表格視圖

UITableViewScrollPositionNone - 表視圖滾動感興趣的行,以最小的移動完全可見。如果該行已完全可見,則不會發生滾動。例如,如果行在可見區域上方,則行爲與由UITableViewScrollPositionTop指定的行爲相同。這是默認設置。

但是,我發現表視圖根本不滾動。如果我使用UITableViewScrollPositionTopUITableViewScrollPositionBottom,表格視圖按預期滾動。

這可能是文件不正確?或者我錯過了什麼?

+0

該文檔絕對正確。你是否正在實例化一個scrollTo動畫? – jakenberg

+0

我只是在所有三個示例中調用[self.tableView scrollToRowAtIndexPath:myPath atScrollPosition:UITableViewScrollPositionNone animated:YES]。 –

+0

您是否確認您的界限設置正確? – jakenberg

回答

0

您需要確保表格視圖的內容視圖有空間滾動。我曾經需要滾動表格視圖,因爲用戶點擊文本字段並且鍵盤出現了,我需要將表格視圖的內容擴展到鍵盤高度的高度,以便表格視圖可以滾動。就像這樣:

UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardFrame.size.height, 0.0); 
self.tableView.contentInset = contentInsets; 
self.tableView.scrollIndicatorInsets = contentInsets; 
[self.tableView scrollToRowAtIndexPath:self.currentEditingCellIndexPath atScrollPosition:UITableViewScrollPositionNone animated:YES]; 
4

爲UITableView中的selectRowAtIndexPath文檔:動畫:的scrollPosition:有一節,描述你正在經歷。

特別注意事項傳遞UITableViewScrollPositionNone將 結果中沒有滾動,而不是最低滾動爲常數描述 。要滾動至滾動至少爲 的新選定行,請使用此方法選擇行,並使用 UITableViewScrollPositionNone,然後調用 scrollToRowAtIndexPath:atScrollPosition:animated:使用 UITableViewScrollPositionNone。

希望有所幫助!

相關問題