簡體   English   中英

如何在swift中旋轉屏幕后獲得視圖的高度?

[英]How can I get the height of a view after screen rotation in swift?

有一個視圖,我在故事板中添加約束,所以它會在屏幕旋轉后改變它的大小,那么如何在屏幕旋轉后獲得它的高度和寬度? 我在這樣的旋轉事件函數中嘗試了這個:

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) 
{
    println("h:\(view.bounds.size.height)")
    println("w:\(view.frame.size.width)")
}

但它只給我旋轉前的尺寸。 我想得到類似的東西:

“現在是風景,高度是......寬度是......”“現在是肖像,高度是...寬度是...”在旋轉事件功能

您正在使用的功能說“將轉換”,這意味着轉換未完成,因此您無法獲取新的大小。

你需要使用:

dispatch_async(dispatch_get_main_queue()) { 
    println("h:\(view.bounds.size.height)")
    println("w:\(view.frame.size.width)")
             }

旋轉完成后(在主隊列中)將執行此代碼,並且新的大小可用。

問候。

斯威夫特3

針對Swift 3更新了crom87的答案:

override func viewWillTransition( to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator ) {
  DispatchQueue.main.async() {
    print( "h:\(self.view.bounds.size.height)" )
    print( "w:\(self.view.frame.size.width)" )
  }
}

暫無
暫無

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

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