Как автоматически загружать данные - PullRequest
0 голосов
/ 18 февраля 2019

Привет, я хочу автоматически загрузить данные после действия.Для этого я использую контроллер 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()

    }

1 Ответ

0 голосов
/ 18 февраля 2019

Вам нужно позвонить self.getHomePageApi() в viewDidLoad или viewDidAppear.Если вы решите использовать в viewDidLoad, функция будет вызываться только 1 раз. Также вы можете использовать viewDidAppear.viewDidAppear запустить, когда VC представил. И вы сказали в строке комментария // Code to refresh table view.Если вы используете tableview и вам нужно reloaddata в вашей функции.Это что-то вроде:

func getHomePageApi(){
 // Do something

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

}

Почему мы используем Dispatch.Поскольку при загрузке данных выполняется фоновый поток и UICollectionView.reloadData() должен использоваться только из основного потока.

...