如何刷新表格视图但禁用弹跳效果?

5
我想在向下滚动时禁用我的scrollview弹跳。

enter image description here

当我禁用垂直弹跳时,我无法刷新表格。有什么建议可以禁用弹跳,但启用刷新表格吗?
我是这样刷新的:
self.refreshControl = UIRefreshControl()
    self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
    self.tableView.addSubview(refreshControl)

func refresh(sender:AnyObject) {
    getJson()
    self.tableView.reloadData()
    self.refreshControl.endRefreshing()
}

谢谢。


“禁用弹跳”?这是什么意思? - luk2302
1
我认为没有办法做到。 - Cong Tran
你是怎样尝试刷新你的表格视图的? - adolfosrs
2个回答

9

我刚刚是这样做的:

func scrollViewDidScroll(scrollView: UIScrollView) {

    if scrollView.contentOffset.y < 0.0 {
        return
    }

    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
        scrollView.setContentOffset(CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height), animated: false)
    }
}

0

UIScrollViewDelegate中实现scrollViewDidScroll方法

  extension ViewController: UIScrollViewDelegate {
      func scrollViewDidScroll(_ scrollView: UIScrollView) {
          if scrollView.contentOffset.y > 0 {
              scrollView.setContentOffset(CGPoint(x: scrollView.contentOffset.x, y: 0), animated: false)
          }
      }
    }

这允许表视图向下拉动以进行刷新,但限制了向上拉动。这消除了向上方的反弹。

副作用:这将不允许您超出已经在视图上的单元格,因此您无法向下滚动到不可见的单元格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接