0

我是iOS開發的初學者,我有一個關於如何顯示UIActivityIndi​​catorView的問題。如何顯示UIAableViewController的UIActivityIndi​​catorView?

這是我的結構:

我有一個的UITabBarController爲根VC。我有一個UITableViewController 在TableView內部,我做了一個REST請求(此時是一個假申請)。

我想要什麼?

當我啓動應用程序時,TableView被加載並且請購已完成。 請求被創建時,我想顯示UIActivityIndi​​catorView。

我的問題是顯示此ActivityIndi​​catorView :(

我的代碼

MainViewController(根VC)

import UIKit 

class MainViewController: UITabBarController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    setupTabBarItems() 
} 

private func setupTabBarItems() { 

    let items: [String] = ["Home", "Carrinho", "Categorias", "Conta"] 

    let homeVC = HomeTableViewController() 
    let carrinhoVC = UIViewController() 
    let categoriasVC = UIViewController() 
    let contaVC = UIViewController() 

    let tabBarList = [homeVC, carrinhoVC, categoriasVC, contaVC] 

    for i in 0..<4 { 
     tabBarList[i].tabBarItem = UITabBarItem(title: items[i], image: UIImage(named: items[i]), selectedImage: UIImage(named: items[i])) 
    } 

    viewControllers = tabBarList 
} 
} 

HomeTableViewController(表視圖)

import UIKit 

class HomeTableViewController: UITableViewController { 

let progressView: UIActivityIndicatorView = { 
    let p = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge) 
    p.backgroundColor = .black 
    p.translatesAutoresizingMaskIntoConstraints = false 
    p.startAnimating() 
    return p 
}() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // **the method is called here** 
    setupIndicatorView() 
    /* others methods */ 
} 

private func setupIndicatorView() { 
    guard let window = UIApplication.shared.keyWindow else {return} 

    window.addSubview(progressView) 
    window.bringSubview(toFront: progressView) 

    // function to add constraints (is an extension of UIView) 
    window.constraint(pattern: "H:|[v0]|", views: progressView) 
    window.constraint(pattern: "V:|[v0]|", views: progressView) 

} 
/* other methods */ 

有什麼建議嗎?

回答

0

直接添加progressView到的tableView:

private func setupIndicatorView() { 
    self.view.addSubview(progressView) 
    progressView.center = self.view.center // or instead use autolayout if you prefer it 
} 
相關問題