2014-04-01 39 views
0

假設我正在做iOS 7的交互式視圖控制器轉換,並且交給了toViewControllerfromViewController,其中只有fromViewController目前在屏幕上可見。如果視圖控制器當前沒有在屏幕上可見,是否可以獲取視圖控制器的快照,包括其狀態欄?

如果我想獲得fromViewController的快照,我可以很容易地做到這一點:

UIView *fromViewControllerSnapshot = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:YES]; 

但是,如果我一直在尋找包括toViewController狀態欄的快照,我不知道我是怎麼'那樣做,因爲它在屏幕上不可見。

至於爲什麼,我想滑動完整的視圖控制器,包括狀態欄向右作爲過渡的一部分來彈出它並同時滑動另一個全視圖控制器,同時移動他們各自的狀態欄。

是否有可能獲得不是100%可見的視圖控制器的快照?

+0

如果您的要求是拍攝完整的視圖控制器是包含可見和不可見的對象捕獲沒有狀態欄我可以幫助..如果是這種情況讓我知道.. –

回答

1

無需自己操作快照即可使用快照UIScreen

你在做什麼實際上是快照你的應用程序的全屏,而不是有問題的視圖控制器。在這種情況下,它恰好佔用全屏幕,但通常不會做什麼。

這裏要做的通常是正確的做法是拍攝實際視圖本身的圖像快照(viewController.view)並在動畫中使用它們。這樣,您可以讓應用程序和視圖控制器自行處理狀態欄着色/動畫。

如果你看看其他應用程序處理這種情況的方式,特別是內置轉換,通常屏幕上只有一個狀態欄實例。如果另一個視圖滑動或動畫顯示,狀態欄會出現/消失/變色,但是新的視圖不會對另一個視圖產生動畫效果。

+0

我只是在探索其他選項我猜測。這[看起來很難複製默認](http://stackoverflow.com/questions/22624780/how-would-i-begin-to-replicate-the-custom-view-controller-transition-apple-uses?rq = 1)。 –

+2

@DougSmith我剛剛回答了關於如何解決動畫滯後問題的其他問題。很簡單! – Dima

相關問題