说我正在使用iOS 7的交互式视图控制器转换,我已经递送了toViewController
和fromViewController
,其中只有{{1}屏幕上当前可见。
如果我想获得fromViewController
的快照,我可以轻松地执行此操作:
fromViewController
但如果我正在寻找包含UIView *fromViewControllerSnapshot = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:YES];
状态栏的快照,我不确定我是如何做到这一点的,因为它尚未在屏幕上显示。
至于为什么,我想将完整视图控制器(包括状态栏)向右滑动,作为过渡的一部分,以弹出它并将另一个完整视图控制器滑入同时,两者都移动各自的状态栏。
是否可以获取视图控制器的快照,而不是100%可见?
答案 0 :(得分:1)
使用UIScreen
快照自行处理快照并非如此。
您正在做的是实际快照应用程序的整个屏幕,而不是相关的视图控制器。在这种情况下,它恰好占据了整个屏幕,但通常不是你要做的。
这里一般正确的做法是拍摄实际视图本身的图像快照(viewController.view)并在动画中使用它们。这样,您可以让应用程序和视图控制器自行处理状态栏着色/动画。
如果你看看其他应用程序处理这种情况的方式,特别是内置转换,屏幕上通常只有一个状态栏实例。如果另一个视图滑动或动画状态,状态栏会显示/消失/更改颜色,但新的状态栏不会激活另一个视图。