UITableView使用UIRefreshControl拖动距离

我在UITableView上实现UIRefreshControl时遇到了一些麻烦。

一切工作正常,除了我必须滚动屏幕的80%才能触发UIRefreshControl。 有时我甚至无法触发它,因为屏幕底部有一个标签栏,当手指到达它时取消滚动动作。

我查看了其他应用程序,即Apple的'Mail',其中UIRefreshControl在滚动屏幕30%后触发。

我错过了什么? 真的需要帮助这个!

提前致谢


我有类似的问题,这很可能是你的原因。 对我来说,我隐藏了滚动指示器,使我无法看到问题的明显原因: UIScrollView的高度远远超过它的superView ...

仔细检查你的UIScrollView的高度,因为“拖动距离”只是它的一个百分比。 UITableView也是一样,因为它是UIScrollView的子类。

编辑:似乎这不是重现此问题的唯一方法,因为所需的拖动距离以触发刷新计算在一个错误的方式。 请参阅此问题以获取更多信息。

但总的来说,如果你的UIScrollView的高度与他的父容器(例如屏幕本身)不同,就会发生这种情况。


您可能不需要使用UIRefreshControl,并且只需使用scrollViewDidScroll(或tableViewDidScroll,如果是tableView)就可以相应地处理您的刷新,因为无法修改UIRefreshControl。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if ((scrollView.contentOffset.y + scrollView.frame.size.height) >=    scrollView.contentSize.height)
    {
        // Refresh from here
    }
}
链接地址: http://www.djcxy.com/p/13149.html

上一篇: UITableView dragging distance with UIRefreshControl

下一篇: Hashing same character multiple times