Индикатор неопределенной активности дизайна материала не остается до загрузки данных
Я кодировал индикатор активности на основе Примера дизайна материала и публикации из Переполнения стека. Мой полученный код:
@IBAction func optionA(_ sender: Any) {
print("Called")
var overlayView : UIView? //create overlay
overlayView = UIView(frame: view.frame)
overlayView?.frame = CGRect(x: 0, y: 0, width: 80, height: 80)
overlayView?.center = view.center
overlayView?.clipsToBounds = true
overlayView?.layer.cornerRadius = 10
overlayView?.backgroundColor = UIColor(white: 0x444444, alpha: 0.7) //above code is giving dimensions and other features to overlay
view.addSubview(overlayView!) //starts overlay
let activityIndicator = MDCActivityIndicator(frame: CGRect(x: 0, y: 0, width: 32, height: 32)) //create activity indicator
view.addSubview(activityIndicator) //start activity indicator
activityIndicator.startAnimating() //start activity indicator animation
[...] // I think code here is not relevant but if needed I can add it.
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(10), execute: { //delay for ten seconds
activityIndicator.stopAnimating() //stop activity indicator from animating
overlayView?.removeFromSuperview() //stop overlay from overlaying
print("Option A was chosen ", PollViewController.retrieveOptionA, " times")
print("Option B was chosen ", PollViewController.retrieveOptionB, " times")
print("Option C was chosen ", PollViewController.retrieveOptionC, " times")
print("Option D was chosen ", PollViewController.retrieveOptionD, " times")
print("Option E was chosen ", PollViewController.retrieveOptionE, " times")
})
Однако, когда я запускаю его, я получаю это в результате:
* примечание: в этом GIF есть длинная пауза, просто терпите - вот почему я хочу индикатор активности
Как видно, индикатор активности появляется только на долю секунды - уходя до того, как результаты даже показывают. Почему это происходит? Как я могу это исправить?