Iphone 确定给定方向上UIView的大小

Iphone 确定给定方向上UIView的大小,iphone,cocoa-touch,ipad,uiview,Iphone,Cocoa Touch,Ipad,Uiview,当设备旋转时,我需要计算UILabel的高度,以便调整其框架,以设置显示其文本所需的适当高度 我希望帧的重置尽可能平滑,这就是我尝试在willRotateToInterfaceOrientation:duration:方法中进行计算和帧设置的原因。 但是,在此方法中,UILabel的superview的边界对于旧方向仍然有效 当我在didRotateToInterfaceOrientation:duration:方法中执行相同的调用时,帧设置不是很平滑,感觉有点迟钝(但至少我可以使用superv

当设备旋转时,我需要计算UILabel的高度,以便调整其框架,以设置显示其文本所需的适当高度

我希望帧的重置尽可能平滑,这就是我尝试在willRotateToInterfaceOrientation:duration:方法中进行计算和帧设置的原因。 但是,在此方法中,UILabel的superview的边界对于旧方向仍然有效

当我在didRotateToInterfaceOrientation:duration:方法中执行相同的调用时,帧设置不是很平滑,感觉有点迟钝(但至少我可以使用superviews bounds.width进行正确的计算)

现在我的问题是:是否有一种方法可以确定给定界面方向上UIView的宽度,以便我可以进行上述计算?我希望尽可能做到通用,因为我将在iPad和iPhone上使用代码

如果这是不可能的,有没有一个优雅的方式来做我上面所描述的


谢谢

为主视图创建UIView子类,并覆盖布局子视图。will/didRotate接口没有真正的用处。

听起来好像你已经找到了解决方案。如何使用willRotateToInterfaceOrientation并在该方法中基于即将到来的用于调整子视图(标签)的接口方向(不是设置,只是计算)手动计算superview帧坐标框架。这就是我基本上陷入困境的地方——我如何正确计算superview的大小——考虑到它可以显示在iPhone、iPad甚至是另一个视图的子视图上?