編輯:增加了另一個選項與控制器遏制iOS 5和更高版本。
另一種解決方法是設置圖層的時間空間。
這是通過CALayer的速度屬性完成的。爲了減緩動畫下來,可以使用:
MytransparentVCViewController *vc = [[MytransparentVCViewController alloc] initWithNibName:@"MytransparentVCViewController" bundle:nil];
// Makes all animations 10 times slower
// To speed it up, set it to multiples of 1: 2 is 2 times faster, 3 is 3 times faster etc
vc.view.layer.speed = 0.1;
[self presentModalViewController:vc animated:YES];
注意,如果你的目標是要改變模式視圖控制器,你將要呈現的動畫速度在鏈接後所提出的解決方案將無法正常工作(爲例如,如果您使用UIModalTransitionStyleCoverVertical)。
圖層的速度不是絕對值,而是該圖層父級時間空間的函數(除非圖層位於圖層層次結構的根目錄中)。例如,當您將圖層的速度設置爲2時,與該圖層父級的動畫相比,其動畫運行速度會快兩倍。
另一種選擇是使用視圖控制器遏制。 (僅適用於iOS 5及更高版本)
http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81。
您可以使用UIViewController的transitionFromViewController完全控制動畫:toViewController:duration:options:animations:completion :.
感謝您的提示zpasternack - 我會檢查出來! – 2009-06-29 06:15:25
看起來像這樣,就像它會得到。答案接受:-) – 2009-07-12 00:22:28