如何将activityIndi​​cator置于其超级中心?

时间:2020-01-24 23:22:37

标签: ios swift xcode user-interface

在将活动指示器相对于屏幕尺寸居中并在其超级视图内居中时,我遇到了问题。当前是这样设置的:

self.activityIndicator = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.gray)
self.tableBackgroundView.addSubview(self.activityIndicator)
self.activityIndicator.center.x = UIScreen.main.bounds.width / 2

水平居中效果很好,但是我试图将center.y设置为表格视图的中心。什么是将其垂直居中放置的最佳方法,以使其在所有屏幕尺寸下居中?下图显示了未明确设置center.y的情况

enter image description here

1 个答案:

答案 0 :(得分:1)

使UIActivityIndi​​catorView或实际上是层次结构中的任何视图居中的最佳方法是使用NSLayoutConstraints,您可以以编程方式使用它们来像这样使ActivityIndi​​cator居中。

activityIndicator = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.gray)

//This is important.
view.addSubview(activityIndicator)
//If the Activity Indicator is not in the correct z-index you can uncomment this line
//view.bringSubview(toFront: activityIndicator)

NSLayoutConstraint.activate([
    activityIndicator.centerXAnchor.constraint(equalTo: tableBackgroundView.centerXAnchor, constant: 0.0),
    activityIndicator.centerYAnchor.constraint(equalTo: tableBackgroundView.centerYAnchor, constant: 0.0)
])