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