根据方向的变化更改CGRect值

时间:2013-07-31 01:28:30

标签: ios

我在view1中有一个按钮。当我按下该按钮时,第二个视图view2将从该按钮的CGRect中生成动画。在view2的viewController一侧有一个类别,我可以从view1传入我的按钮的CGRect值。此外,我将此rectValue存储在view2的属性中。现在,当我关闭视图时,我需要视图动画回到相同的按钮。我通过将另一个CGRect(我在view2上保存的属性)传递到同一类别来做到这一点。所有这些都很有效。

问题是 - 当我从我的按钮启动view2时,当我在view2中,更改我的设备方向,然后关闭它时,视图仍然会尝试返回到按钮的原始位置。

所以我需要以某种方式,根据view2方向的变化来改变CGRect值。我可以将视图的方向传递给类别,但我仍然无法根据新方向更改rect值。

无法将autoResizeMaskTool应用于按钮的rect,因为view2中没有该按钮。

我研究了一种几乎解决问题的方法 - convertRect:ToView:但并没有完全按照我的需要做。(或者我可能只是不知道如何正确使用该方法)

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您是否可以保留对按钮的弱引用,而不是将rect作为属性存储在view2中?这样,当您需要为其设置动画时,您可以在该点询问它的帧,如果由于旋转而移动它,您应该获得它的新位置。