在方向改变后检测UIView的旋转宽度/高度

时间:2012-01-12 21:05:46

标签: ios uiview uikit

我希望能够检查可能已经或可能没有从其原始方向旋转的UIView实例(例如,通过用户旋转设备)并确定“真实”宽度和高度是什么。 “真实”在这里意味着,如果一个纵向导向的iPad上的视图在旋转前是768x1024,在侧向翻转之后,我会计算出新的宽度是1024而新的高度是768。

如果我将视图的变换应用于其框架属性,如下所示:

CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);

我得到了理想的结果。然而,Apple的文档声明如果视图的变换不是身份变换,则UIView :: frame是未定义的,所以依靠这个计算可能不是一个好主意吗?

2 个答案:

答案 0 :(得分:5)

view.bounds将返回您想要的矩形

view.frame将返回一个矩形,其中transfrom应用于边界以及位置。

答案 1 :(得分:-1)

由于缺乏输入,我将继续使用我的解决方案:

CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);

获得正确定向的边界。如果有人有另一个解决方案或者可以确认这是安全的,我会给他们答案。