显示当collectionView中的数据加载时的活动指标Swift

问题描述:

当我的collectionView中的数据加载时,我将如何去显示活动指标和白色背景?显示当collectionView中的数据加载时的活动指标Swift

目前,我有这样的:

let activityView = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge) 
override func viewDidAppear(_ animated: Bool) { 

    super.viewDidAppear(animated) 
    self.view.addSubview(activityView) 
    activityView.hidesWhenStopped = true 
    activityView.center = self.view.center 
    activityView.startAnimating() 

    DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async { 
     fetchPosts() 
    } 

    DispatchQueue.main.async { 
     UIView.animate(withDuration: 1, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: { 
      self.collectionView?.reloadData() 
      self.collectionView?.alpha = 1 
      self.activityView.stopAnimating() 
     }, completion: nil) 
    } 
} 
+0

您可以更改['color'](https://developer.apple.com/ UIActivityInidicatorView'的文档/ uikit/uiactivityindicatorview/1622836-color)转换为白色以外的东西。 – Paolo

试试这个,我希望这会帮助你

let activityView = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge) 

override func viewDidAppear(_ animated: Bool) { 

    super.viewDidAppear(animated) 

    let fadeView:UIView = UIView() 
    fadeView.frame = self.view.frame 
    fadeView.backgroundColor = UIColor.whiteColor() 
    fadeView.alpha = 0.4 

    self.view.addSubview(fadeView) 

    self.view.addSubview(activityView) 
    activityView.hidesWhenStopped = true 
    activityView.center = self.view.center 
    activityView.startAnimating() 

    DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async { 
    fetchPosts() 
    } 

    DispatchQueue.main.async { 
    UIView.animate(withDuration: 1, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: { 
     self.collectionView?.reloadData() 
     self.collectionView?.alpha = 1 
     fadeView.removeFromSuperview() 
     self.activityView.stopAnimating() 
    }, completion: nil) 
} 
}