UITableView仅反弹底部边缘

是否有可能反弹UITableView的底部,但不是顶部? 如果是这样,请给我看代码。

我没有改变bounces属性,而是添加到UIScrollViewDelgate方法中:

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

应该可以通过观察UITableview的contentOffset属性。

 [_tableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:NULL]; 

。 。 并防止偏移消极。

您可以尝试使用UIScrollViewDelegate方法检测拖动方向并适当调整bounces属性?

我也遇到了这个问题,我的解决scheme是:

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.y > 100) { scrollView.bounces = NO; }else{ scrollView.bounces = YES; } } 

我在我的项目中使用这个代码,它运作良好。

快速3.1

 extension YourViewController: UIScrollViewDelegate{ func scrollViewDidScroll(_ scrollView: UIScrollView) { if scrollView == tableView { let a = scrollView.contentOffset if ay <= 0 { scrollView.contentOffset = CGPoint.zero // this is to disable tableview bouncing at top. } } } } 

在迅捷2.2:

 func scrollViewDidScroll(scrollView: UIScrollView) { if scrollView.contentOffset.y <= 0 { scrollView.contentOffset = CGPointZero } } 
 -(void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.y <= 0) { scrollView.contentOffset = CGPointZero; scrollView.showsVerticalScrollIndicator = NO; } else { scrollView.showsVerticalScrollIndicator = YES; } } 

@Liron Berger的解决scheme将导致VerticalScrollIndicator仍然显示,只需将showsVerticalScrollIndicator设置为NO即可解决此问题