0

私はiOS開発の初心者で、UIActivityIndi​​catorViewの表示方法に関する問題があります。私はルートVCとしてUITabBarControllerを持ってUITableViewControllerを使用してUIActivityIndi​​catorViewを表示するにはどうすればよいですか?

は、これが私の構造体です。 最初のガイドのこのTabBarControllerの中に私はUITableViewControllerを持っています 私は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

のtableViewに直接progressViewを追加します。

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