确定给定方向的UIView的大小

时间:2011-06-30 15:09:38

标签: iphone cocoa-touch ipad uiview

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

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

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

现在我的问题:有没有办法在给定的InterfaceOrientation中确定UIView的宽度,以便我可以进行上述计算?我希望这样做尽可能通用,因为我会在iPad和iPhone上使用这些代码。

如果无法做到这一点,是否有一种优雅的方式来完成我上面描述的内容?

感谢。

1 个答案:

答案 0 :(得分:2)

您的主视图的子类UIView并覆盖layoutSubviews。 will / didRotate接口并不真正有用。