如何缩短拉距以激活iOS 6/7中的拉取刷新操作?

嘿StackOverflow人们,

我一直试图找出这个问题一段时间,但无济于事,我需要一些帮助。 我有一个UITableView接近我的应用程序的底部,没有足够的屏幕距离用户刷新。 有人知道我可以如何缩短在UITableViewUIWebView上激活拉动刷新动作的距离(通过iOS 6/7中的UIRefreshControl )吗?

在此先感谢大家!

根据苹果文件,我没有看到任何方式来修改UIRefreshControl参数。
链接: https : //developer.apple.com/library/ios/documentation/uikit/reference/UIRefreshControl_class/Reference/Reference.html

使用第三方组件如ODRefreshControl ( 自定义滚动距离以激活刷新,修改 #define kMaxDistance 常量 )。

要么…

不要使用UIRefreshControl ,而是在-scrollViewDidScroll方法中实现自己的逻辑,如:

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) { //refresh logic } } 

你仍然可以使用refreshControl,但有一些修改!

将这些代码添加到您的viewController:

 var canRefresh = true override func scrollViewDidScroll(scrollView: UIScrollView) { if scrollView.contentOffset.y < -100 { //change 100 to whatever you want if canRefresh && !self.refreshControl.refreshing { self.canRefresh = false self.refreshControl.beginRefreshing() self.refresh() // your viewController refresh function } }else if scrollView.contentOffset.y >= 0 { self.canRefresh = true } } 

并像往常一样在self.refresh()函数中刷新逻辑的结尾添加:

  self.refreshControl.endRefreshing()