如何自动加载数据

问题描述 投票:-2回答:1

嗨我想在动作后自动加载数据。对于那个我使用pull to Refresh控制器。当用户拉开那个时间时它只是加载我想要自动加载。我写下面的代码

@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()

    }
ios swift iphone refresh
1个回答
0
投票

你需要在self.getHomePageApi()viewDidLoad中调用viewDidAppear。如果你决定使用viewDidLoad函数只会调用一次。你也可以使用viewDidAppear。当VC出现时,viewDidAppear运行。你在评论行// Code to refresh table view中说。如果你使用tableview,你需要在你的函数中使用reloaddata。它类似于:

func getHomePageApi(){
 // Do something

    DispatchQueue.main.async {
  self.yourtableview.reloadData()
   }

}

为什么我们使用Dispatch。因为加载数据运行后台线程,所以必须仅从主线程使用UICollectionView.reloadData()

© www.soinside.com 2019 - 2024. All rights reserved.