我有一個TableViewController:限制滾動的UITableView的
正如你看到我在上面有我自己的自定義吧。 UITable View只是一個static
之一,我在UITableView的頂部添加了一個視圖。
的事情是,當我滾動的TableView頂部邊它變得像波紋管形象,我不希望它。有沒有簡單的代碼,我可以限制tableView的滾動?
我有一個TableViewController:限制滾動的UITableView的
正如你看到我在上面有我自己的自定義吧。 UITable View只是一個static
之一,我在UITableView的頂部添加了一個視圖。
的事情是,當我滾動的TableView頂部邊它變得像波紋管形象,我不希望它。有沒有簡單的代碼,我可以限制tableView的滾動?
因爲UITableView是UIScrollView的子類,所以您可以使用此UIScrollViewDelegate方法禁止在頂部邊界上方滾動
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView) {
if (scrollView.contentOffset.y < 0) {
scrollView.contentOffset = CGPointZero;
}
}
}
如果我理解正確,你已經建立您的自定義欄爲您的tableview的一部分。將custom bar
放在獨立的視圖中,而不是在tableview中,並在設置視圖時將您的tableview放置在自定義欄的下方。您需要創建自定義視圖控制器,該控制器將具有自定義欄和靜態表視圖。
您需要創建您的視圖控制器對象類型UIViewController
而不是UITableViewController
。然後將自定義欄作爲子視圖添加到self.view
。創建一個單獨的UITableView
並將其添加到自定義欄下方。這應該使自定義欄靜態和表視圖滾動。
更新:
爲了使您需要將其設置爲
tableView.scrollEnabled = NO:
讓我知道這對你的作品的實現代碼如下靜態的。
呦將需要的UITableView的反彈屬性設置爲NO
UITableView *tableView;
tableView.bounces = NO;
編輯:請注意你也可以取消從Interface Builder中反彈太
請檢查這個答案的進一步細節Disable UITableView vertical bounces when scrolling
我有同樣的問題,並問我們的用戶體驗設計師,如何做更好。他說,這兩個嚴格的解決方案(防止彈跳或允許它)是不好的。這是更好地讓反彈但僅限於一定的空間
我的解決辦法是:
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,並帶動畫。 祝你好運!
完美。你是對的。 – Ali