0

我在 view1 中有一个按钮。当我按下该按钮时,第二个视图 view2 会根据该按钮的 CGRect 进行动画处理。view2 的 viewController 端有一个类别,我可以在其中从 view1 传递按钮的 CGRect 值。此外,我将此 rectValue 存储在 view2 的属性中。现在,当我关闭视图时,我需要将视图动画化回同一个按钮。我通过将另一个 CGRect(我保存在 view2 上的属性)传递给同一类别来做到这一点。所有这一切都很好。

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

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

无法将 autoResizeMaskTool 应用于按钮的矩形,因为 view2 中不存在该按钮。

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

先感谢您。

4

1 回答 1

1

与其将矩形作为属性存储在 view2 中,不如保留对按钮的弱引用?这样,当你需要动画回到它时,你可以在那个点向它询问它的帧,如果它由于旋转而被移动,你应该得到它的新位置。

于 2013-07-31T01:41:06.763 回答