2012-10-09 53 views
4

我有一個TableViewController:限制滾動的UITableView的

enter image description here

正如你看到我在上面有我自己的自定義吧。 UITable View只是一個static之一,我在UITableView的頂部添加了一個視圖。

的事情是,當我滾動的TableView頂部邊它變得像波紋管形象,我不希望它。有沒有簡單的代碼,我可以限制tableView的滾動?

enter image description here

回答

19

因爲UITableView是UIScrollView的子類,所以您可以使用此UIScrollViewDelegate方法禁止在頂部邊界上方滾動

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView == self.tableView) { 
     if (scrollView.contentOffset.y < 0) { 
      scrollView.contentOffset = CGPointZero; 
     } 
    } 
} 
+0

完美。你是對的。 – Ali

0

如果我理解正確,你已經建立您的自定義欄爲您的tableview的一部分。將custom bar放在獨立的視圖中,而不是在tableview中,並在設置視圖時將您的tableview放置在自定義欄的下方。您需要創建自定義視圖控制器,該控制器將具有自定義欄和靜態表視圖。

+0

你理解正確。然後我無法在tableViewController中創建靜態表視圖。 – Ali

+0

你需要創建你自己的視圖控制器,它將包含一個表視圖和自定義欄。如果你已經定義了一些預定義內容的表格視圖,你可以鏈接到它在故事板 – tiguero

+0

我試過了。xib文件,並且我沒有將TableView的內容設置爲靜態的選項。所以這意味着我必須創建一個動態的表格視圖。對? – Ali

0

您需要創建您的視圖控制器對象類型UIViewController而不是UITableViewController。然後將自定義欄作爲子視圖添加到self.view。創建一個單獨的UITableView並將其添加到自定義欄下方。這應該使自定義欄靜態和表視圖滾動。

更新:

爲了使您需要將其設置爲

tableView.scrollEnabled = NO: 

讓我知道這對你的作品的實現代碼如下靜態的。

+0

是的,但是然後tableView不能是靜態的。對?我在.xib文件中嘗試過,並且我沒有將TableView的「內容」設置爲靜態的選項。 – Ali

+0

我編輯了我的答案。請讓我知道,如果這是你想要的。 – iDev

4

呦將需要的UITableView的反彈屬性設置爲NO

UITableView *tableView; 
    tableView.bounces = NO; 

編輯:請注意你也可以取消從Interface Builder中反彈太

請檢查這個答案的進一步細節Disable UITableView vertical bounces when scrolling

+0

太好了,這是我在找的。 +1 upvote。 – Ali

+0

當我們自上而下製作滾動文件時,是否有這種可能性?因爲如果我們從上到下滾動,它會更好。 – Ali

+0

另一個可能的答案是Mathhias Bunch之一,它應該涵蓋你需要的 –

0

我有同樣的問題,並問我們的用戶體驗設計師,如何做更好。他說,這兩個嚴格的解決方案(防止彈跳或允許它)是不好的。這是更好地讓反彈但僅限於一定的空間

我的解決辦法是:

override func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    if scrollView == self.tableView { 
     if scrollView.contentOffset.y < -64 { 
      scrollView.scrollRectToVisible(CGRect(origin: CGPoint(x: 0, y: -64), size: scrollView.frame.size), animated: false) 
      scrollView.scrollRectToVisible(CGRect(origin: CGPoint.zero, size: scrollView.frame.size), animated: true) 
     } 
    } 
} 

64是,「一些空間,」對我來說。代碼停止從頂部的-64的tableView,並帶動畫。 祝你好運!