Search code examples
iosuitableviewuiwebviewuirefreshcontrol

How Do I Shorten the Pull Distance on UIRefreshControl to Activate the Pull to Refresh Action?


Hey StackOverflow People,

I've been trying to figure out this question for some time now but to no avail and I need some help. I have a UITableView close to the bottom of my app and there's not enough screen distance for the user to engage the refresh. Does anybody know how I can shorten the distance it takes to activate the pull to refresh action on a UIRefreshControl within a UITableView and UIWebView?

Thanks in advance everyone!


Solution

  • you can still use refreshControl but with some modifications!

    add these code to your 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
        }
    }
    

    and as usual in the end of your refresh logic in self.refresh() function add :

       self.refreshControl.endRefreshing()