如何自动加载数据

时间:2019-02-18 12:51:43

标签: ios swift iphone 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()

    }

1 个答案:

答案 0 :(得分:0)

您需要在self.getHomePageApi()viewDidLoad中致电viewDidAppear。如果您决定在viewDidLoad中使用,函数将仅调用1次。也可以使用viewDidAppearviewDidAppear在提供VC时运行。您在注释行// Code to refresh table view中说。如果使用tableview并且需要在函数中使用reloaddata。它类似于:

func getHomePageApi(){
 // Do something

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

}

为什么我们使用Dispatch。由于加载数据是在后台线程中进行的,因此UICollectionView.reloadData()仅可在主线程中使用。