2012-07-03 49 views
2

我有一個表格視圖,包含3個部分,「昨天,今天,明天」。當表格視圖啓動時,我希望「今日」部分成爲最可見的部分。因此我使用這個函數:UITableView滾動到內容大小的部分

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:NO]; 

這個工作正常,當表視圖填充超出其內容大小,因此它是可滾動的。問題是,例如每個部分只包含1個單元格。然後整個桌子就會放在屏幕上,因此上面的代碼不會觸發,因爲它會反彈回來。

任何人都知道這個解決方案嗎?

+0

認爲您需要增加tabel視圖的內容大小才能夠滾動 –

+0

是的。問題在於你可以滾動「太遠」,並且滾動指示器不會提供有多少內容的良好視覺... – Accatyyc

+0

是的,這是正確的,但從適當的計算,你可以調整內容大小,使您可以在某些條件下使用上述方法。 –

回答

1

我自己回答,因爲沒有真正的想法。

從我的理解,這是不可能實現的。如果可以的話,表格視圖將嘗試滾動到該行。唯一的方法是使內容大小足夠大以便表格滾動。

1

嘗試設置表的edgeInsets。這將按照您指定的偏移量開始繪製表格。

UIEdgeInsets edgeInsets = UIEdgeInsetsMake(someValue, 0, 0, 0); 
self.tableView.contentInset = edgeInsets; 

你在哪裏計算someValue將桌子放到你想要的位置。

+0

感謝您的回答。我試過這個,它只適用於內容大於實際表格框架的表格。具有較小內容的表格(例如那些具有3個單元格的表格)似乎完全忽略了邊緣插頁。 – Accatyyc