【问题标题】:Activity indicator is not in centered in TableView活动指示器不在 TableView 中居中
【发布时间】:2017-01-26 06:28:21
【问题描述】:

我想在TableViewNIB/XIB 文件中显示activity indicator,但它显示不在中心,它放在右侧

我愿意:

override func viewDidLoad() {
    super.viewDidLoad()

let actInd: UIActivityIndicatorView = UIActivityIndicatorView()
    actInd.frame = CGRect(x: 0.0, y: 0.0, width: 40.0, height: 40.0)
    actInd.center = self.view.center
    actInd.hidesWhenStopped = true
    actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
    self.view.addSubview(actInd)
    actInd.startAnimating()
}

【问题讨论】:

  • 从 ViewDidLoad 中删除您的代码并将您的代码放入 ViewDidAppear
  • ...或者至少,viewDidLayoutSubviews()。由于引入了自动布局(我认为),在调用 viewDidLoad() 时,子视图框架还没有合并。

标签: ios swift swift3 uiactivityindicatorview


【解决方案1】:

这种方法对我有用。

    if let window = UIApplication.shared.keyWindow { 
        activityIndicator.frame = CGRect(x: window.frame.width/2, y: window.frame.height/2, width: 0, height: 0)
        activityIndicator.hidesWhenStopped = true
        activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.white

        window.addSubview(activityIndicator)
    }

希望对你有帮助:)

【讨论】:

    【解决方案2】:
    let actInd: UIActivityIndicatorView = UIActivityIndicatorView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        actInd.frame = CGRect(x: 0.0, y: 0.0, width: 40.0, height: 40.0)
        actInd.hidesWhenStopped = true
        actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
        self.view.addSubview(actInd)
        actInd.startAnimating()
    }
    
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        actInd.center = self.view.center
    }
    
    /* Following two functions are acceptable also.
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        actInd.center = self.view.center
    }
    
    override func viewDidLayoutSubviews() { 
        super.viewDidLayoutSubviews()
        actInd.center = self.view.center
    }
    */
    

    【讨论】:

      【解决方案3】:

      你可以:

      • 在您的 XIB/故事板中添加 UIActivityIndicator
      • 将其设置为 hidden(在情节提要中)
      • 创建一个IBOutlet
      • 在您想要显示/隐藏它时切换spinner.isHidden

      【讨论】:

      • 这就是会做的。
      猜你喜欢
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2012-01-31
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      相关资源
      最近更新 更多