簡體   English   中英

如何將 activityIndicator 置於其父視圖的中心?

[英]How to center activityIndicator to its superview?

我在將活動指示器相對於屏幕尺寸居中並在其超級視圖中居中時遇到問題。 這是它當前的設置方式:

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

在此處輸入圖像描述

將 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)
])

不要忘記添加:

self.activityIndicator.translatesAutoresizingMaskIntoConstraints = false

viewWillLayoutSubviews()方法中添加:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM