![](/img/trans.png)
[英]UIActivityIndicatorView in a UITableViewController
[英]Center a UIActivityIndicatorView for a UITableViewController in the window, not in the table view
我在界面設計器中的表格視圖中有一個UIActivityIndicatorView
。 我正在嘗試使用以下方法將其居中在屏幕中間:
override func viewWillLayoutSubviews() {
self.activityView.center = self.view.center
}
但它似乎總是在頁面上的位置太“低”,它似乎位於 UITableView 的中間,而不是像我想要的那樣位於窗口中間(即它被導航欄等向下推) )
解決方案是將 activityView 框架設置為視圖的邊界。 僅設置中心不起作用,因為 tableView 框架的 y 值為負。
override func viewWillLayoutSubviews() {
self.activityView.translatesAutoresizingMaskIntoConstraints = true
self.activityView.frame = self.view.bounds
}
使用自動布局,您可以使用layoutMarginsGuide
在UITableView
和UICollectionView
獲得正確的中心 X、Y 錨點:
activityView.translatesAutoresizingMaskIntoConstraints = false
activityView.centerXAnchor.constraint(equalTo: view.layoutMarginsGuide.centerXAnchor).isActive = true
activityView.centerYAnchor.constraint(equalTo: view.layoutMarginsGuide.centerYAnchor).isActive = true
你有沒有嘗試過:
self.activityView.center = self.view.window?.center
如果沒有,那么這個怎么樣:
let screenSize = UIScreen.main.bounds
self.activityView.center = CGPoint(x: screenSize.width / 2, y: screenSize.height / 2)
它有點長,但可以很好地處理通話中狀態欄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.