自定义ViewController转换:获取ToViewController的子视图框架

时间:2015-03-21 05:20:15

标签: ios cocoa-touch uiviewcontroller transitions custom-transition

以下是我的问题的说明:

Illustration

我在ViewControllers A& A中有 StarImageView 。 B在其ViewController中显示相同的图像但彼此具有不同的帧。

当轻触ViewController A中的 StarImageView 时,应用程序会将新的视图控制器推入导航控制器堆栈,同时动画到ViewController B中的最终帧。

此行为就像iPhone照片应用中的转换一样。


我现在怎么做

我使用ViewController A中的初始 StarImageView&#39> s 帧和图像初始化动画对象中的临时UIImageView,并通过对rect {{1进行硬编码将其动画化为最终帧(ViewController B中 StarImageView 的框架),并从动画完成块中的superview中删除临时UIImageView。


我希望如何改为

项目是在故事板中创建的,启用了autolayout。我想要做的是在转换期间在ViewController B中获取 StarImageView 的框架,而不是像上面那样对其进行硬编码。由于ViewContorller生命周期,我无法在动画对象中引用ViewController B中的任何子视图,因为它们尚未初始化。

此类情况是否还有其他解决方案或最佳做法?提前谢谢!

P.S。我看过thisthisthis,但答案没有运气。

1 个答案:

答案 0 :(得分:0)

[toViewController.view layoutIfNeeded];