我希望能够检查可能已经或可能没有从其原始方向旋转的UIView实例(例如,通过用户旋转设备)并确定“真实”宽度和高度是什么。 “真实”在这里意味着,如果一个纵向导向的iPad上的视图在旋转前是768x1024,在侧向翻转之后,我会计算出新的宽度是1024而新的高度是768。
如果我将视图的变换应用于其框架属性,如下所示:
CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);
我得到了理想的结果。然而,Apple的文档声明如果视图的变换不是身份变换,则UIView :: frame是未定义的,所以依靠这个计算可能不是一个好主意吗?
答案 0 :(得分:5)
view.bounds
将返回您想要的矩形
view.frame
将返回一个矩形,其中transfrom应用于边界以及位置。
答案 1 :(得分:-1)
由于缺乏输入,我将继续使用我的解决方案:
CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);
获得正确定向的边界。如果有人有另一个解决方案或者可以确认这是安全的,我会给他们答案。