簡體   English   中英

在窗口中將 UITableViewController 的 UIActivityIndi​​catorView 居中,而不是在表視圖中

[英]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
}

使用自動布局,您可以使用layoutMarginsGuideUITableViewUICollectionView獲得正確的中心 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.

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