Swift 4 UIActivityIndi​​catorView不在UITableView的中心

时间:2018-10-29 16:05:55

标签: ios swift uitableview uiactivityindicatorview

我试图将UIActivityIndi​​catorView居中放置在UITableView中,这就是我创建UIActivityIndi​​catorView的方式:

indicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) as UIActivityIndicatorView

//Set the activity indictor center
indicator.center = self.view.center

//Hide the indicator when its stopped.
indicator.hidesWhenStopped = true

//Set the style of the activity indicator
indicator.style = UIActivityIndicatorView.Style.white

//Set the background colour of the activity indicator
indicator.backgroundColor = UIColor(white: 0.0, alpha: 0.6)

//Make the activity indicator have rounded corners
indicator.layer.cornerRadius = 15

//Add activity indicator to view
self.view.addSubview(indicator)

//Start activity indicator
self.indicator.startAnimating()

但是当我向上滚动UITableView时,看不到我的UIActivityIndi​​catorView,我尝试了以下操作:

override func viewWillLayoutSubviews() {
    self.indicator.center = self.view.center
}

但这没用。

我也尝试过:

override func viewWillLayoutSubviews() {
    self.indicator.translatesAutoresizingMaskIntoConstraints = true
    self.indicator.frame = self.view.bounds
    self.indicator.center = self.view.center
}

也没用,我在做什么错了?

当我向下滚动,然后在表格视图中选择一个项目然后出现活动指示器时,就会发生这种情况。

2 个答案:

答案 0 :(得分:0)

您不能在UITableViewController内部居中,因为它是滚动视图,而滚动视图是View Controller的视图。但是,您可以将其居中放置在窗口视图中,如下所示:

earphones

您还可以通过获取根导航或选项卡视图控制器并将其居中放置在其中来实现此目的。

答案 1 :(得分:0)

我遇到的情况是UIViewController上的一切都很好,但是UITableViewController上的UIActivityIndi​​catorView出现了问题。

请注意建议的解决方案。就我而言,activityView被扩展到整个表单,此解决方案帮助了我。 https://stackoverflow.com/a/41886375/7938405