这是我的问题的说明:
我在 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 中引用任何子视图,因为它们尚未初始化。
对于这种情况,还有其他解决方案或最佳实践吗?提前致谢!