4

这是我的问题的说明:

插图

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

当点击 ViewController A 中的StarImageView时,应用程序会将一个新的视图控制器推送到导航控制器堆栈中,同时动画到其在 ViewController B 中的最后一帧。

这种行为就像 iPhone 照片应用程序中的过渡一样。


我现在怎么做

我使用 ViewController A 中的初始StarImageView 的帧和图像初始化动画对象中的临时 UIImageView,并通过硬编码矩形CGRectMake(0, 60+44, containerView.bounds.size.width, containerView.bounds.size.width)(ViewController B 中的StarImageView的帧)将其动画到最终帧,并从超级视图中删除临时 UIImageView动画完成块。


我希望怎么做

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

对于这种情况,还有其他解决方案或最佳实践吗?提前致谢!

PS我已经看到了这个这个这个,但没有运气的答案。

4

1 回答 1

0

[toViewController.view layoutIfNeeded];

于 2015-08-13T06:28:03.950 回答