2013-08-05 47 views
0

代碼塊的故事板viewcontrollers動畫和它的工作,但不是我想要的.. iwant從左到右的動畫布做它的「左下角」到右上角。爲什麼不從左到右?objective-c CATransition問題

第二我如何停止動畫?

UIViewController *sourceViewController = (UIViewController*)[self sourceViewController]; 
UIViewController *destinationController = (UIViewController*)[self destinationViewController]; 

CATransition* transition = [CATransition animation]; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
transition.type = kCATransitionMoveIn; 
transition.subtype = kCATransitionFromRight; 



[destinationController.view.layer addAnimation:transition forKey:kCATransition]; 
[sourceViewController presentViewController:destinationController animated:YES completion:nil]; 
+0

'[sourceViewController presentViewController:destinationController animated:NO completion:nil];'設置'NO'爲Apple默認模態動畫 –

回答

0

我相信「從左到右」的動畫你正在尋找可能是一個UINavigationController的推動動畫。這也可以通過kCATransitionPush轉換類型來實現。另外,presentViewController會觸發「模態」動畫(從底部開始),因此如果您未使用UINavigationController,則可能使用NO代替參數presentViewController

1
  1. 您需要將代碼包裝在CATransaction中。
  2. 您需要關閉默認動畫(animated:NO
  3. 要讓動畫生效,必須將其添加到超級視圖的圖層中。在提供控制器的情況下,窗口層將是一個明智的選擇。
  4. 「從右移動」動畫「不會是從左到右」的動畫。
  5. 請注意,大多數情況下,您必須根據當前界面方向修改動畫方向。

旁註:改變模態控制器的動畫是「皺眉了」。如果您只是使用子視圖控制器,您將極大地簡化該問題。