2014-12-31 67 views
0

我想用全屏的單元格實現UITableView。當用戶將單元格向上移動一部分時,我想跳到下一個單元格,而不是讓它自然滾動。iOS在UITableView滾動時跳轉到下一個單元格

我在這裏看不到很多問題或答案,也許這是因爲這是一個愚蠢的想法,但客戶希望看到它,而設計師也是這樣設計的,所以我真的必須嘗試。

有沒有人對如何實現這一點有任何建議?

謝謝。 (並感謝指出我的無知,不要說謝謝!)

+2

UITableView繼承自具有名爲pagingEnabled的屬性的UIScrollView。設置爲YES,它應該做你想做的。 – manecosta

+0

就像用戶向上滾動一樣,顯示下一個單元格? –

+0

而不是行,使用部分,然後它會自動執行相同的操作。你將需要更新viewForSectionHeader,它應該看起來像一個表格單元格。 – Mrunal

回答

3

如果您的單元格將與您的tableView的高度相同的大小,請將pagingEnabled屬性設置爲YES。這將使其捕捉到每個垂直滑動上的完整單元格。如果你這樣做,我會確保高度恰好全屏,否則當你滾動時你會得到一些奇怪的偏移量。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // or somewhere similar 
    self.tableView.pagingEnabled = YES; 
} 

... 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return self.tableView.frame.size.height; 
} 

它實際上不是一個可怕的idea-你可以實現與尋呼滾動視圖類似的功能,但是這不需要有一次全部加載數據的優勢。


編輯:我還必須確保到控制器上禁用automaticallyAdjustsScrollViewInsets,否則我不希望初始的第一單元偏移,以防萬一你運行到這一點。

+0

謝謝,這正是我期待的。我有第一個單元格稍微偏移的另一個問題,但是,我在哪裏可以自動禁用AdjustsScrollViewInsets? – ColinMasters

+1

您可以在'viewDidLoad:'中添加'self.automaticallyAdjustsScrollViewInsets = NO'行。請注意,您將其設置在實際控制器上而不是在表格視圖中。 – Stonz2

+0

這工作,完美答案謝謝。 – ColinMasters

相關問題