有一个视图,我在故事板中添加了约束,因此它会在屏幕旋转后改变其大小,那么如何在屏幕旋转后获得其高度和宽度?我在这样的旋转事件函数中试过这个:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
{
println("h:\(view.bounds.size.height)")
println("w:\(view.frame.size.width)")
}
但它只给我旋转前的大小。我想得到类似的东西:
"现在是风景,高度是......宽度是......" "现在是肖像,高度是......宽度是......" 在轮换事件函数中
答案 0 :(得分:13)
您正在使用的功能"将转换",这意味着转换未完成,因此您无法获取新的大小。
您需要使用:
dispatch_async(dispatch_get_main_queue()) {
println("h:\(view.bounds.size.height)")
println("w:\(view.frame.size.width)")
}
此代码将在完成轮换后(在主队列中)执行,并且新的大小可用。
问候。
答案 1 :(得分:5)
crom87为Swift 3更新了答案:
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)" )
}
}