How to add Pull to refresh controller to scrollview?

Hi in my application I want to add Pull to refresh controller to scrollview. I write the following code but it don't getting any response.

When ever I scroll the view on that time add target method is not called.

@IBOutlet var scrool: UIScrollView!
var refreshControl = UIRefreshControl()

override func viewDidLoad() {
        super.viewDidLoad()
        // Add refresh control for the Home page scroll view.
        self.refreshControl.tintColor = UIColor.appcolor
        self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
        self.refreshControl.addTarget(self, action: #selector(refresh(sender:)), for: UIControl.Event.valueChanged)
        self.scrool.isScrollEnabled = true
        self.scrool.alwaysBounceVertical = true
        scrool.addSubview(refreshControl)
    }
    @objc func refresh(sender:AnyObject) {
        // Code to refresh table view
        self.getHomePageApi()
        refreshControl.endRefreshing()

    }

Upvotes: 4

Views: 11746

Answers (1)

Hi I resolved this issue when I write this code in viewwillappear() except viewdidload() function it will working fine.

var refreshControl:RefreshControl!    
override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        refreshControl = RefreshControl()
        refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
        scrool.refreshControl = refreshControl
    }

    @objc func refresh()
    {
        // Code to refresh table view
        refreshControl.endRefreshing()
        self.getHomePageApi()

    }

Upvotes: 9

Related Questions