2016-12-29 59 views
1

我有一個UITableView,我想要set bouncing only one side top side.但我無法解決這個問題。看到這個視頻鏈接,併爲我提供解決方案。任何建議是欣賞和接受。Tableview彈跳只有一面頂端

這裏 https://www.dropbox.com/s/qztsfkqoxuy4aaj/question.mov?dl=0

這是我的tableview信息。

+0

一個反彈的頂部和底部是標準的iOS行爲 - 防止這種看似「錯誤」的用戶。 –

+0

但我需要這樣的項目流,所以我需要開發這樣的應用程序。 –

+0

@AshleyMills我需要連擊解決方案,我必須設置所有像這樣的tableview,當我只有單行然後也。 –

回答

6

使用方法scrollViewDidScroll檢查內容的tableview的滾動型的偏移量。檢查用戶是否試圖滾動超出表視圖的底部邊界。如果是這樣,請回滾到tableview的結尾。這不會限制底部反彈,但會很快回滾,以至於用戶不會注意到底部反彈。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
     if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) { 
      [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)]; 
     } 
    } 

/// UPDATE--如果Tableview的內容大小小於它的框架,上面的代碼可能不起作用。 您可以使用以下在這種情況下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 

    if(scrollView.contentSize.height > scrollView.frame.size.height) 
    { 
    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) { 
     [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)]; 
    } 
    } 
    else if (scrollView.contentOffset.y >= 0) 
    { 
     [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, 0)]; 
    } 
} 
+0

讓我試試這個。 –

+0

使用此答案,如果您只有表中的一行,該行將位於屏幕底部,並且委託方法被重複調用,因爲tableview試圖將自己滾動回位置 –

+1

謝謝你的工作正常對我來說 –