我想在推視圖控制器時顯示一個自定義動畫:我想實現類似於「展開」的動畫,這意味着新視圖從給定的矩形擴展,可以說[100,100 220,380]在動畫期間全屏顯示。推送一個UIViewController的自定義動畫
任何建議,從哪裏開始,分別是任何文檔,教程,鏈接? :)
好的。我可以使動畫擴展用下面的代碼:正確顯示
if ([coming.view superview] == nil)
[self.view addSubview:coming.view];
coming.view.frame = CGRectMake(160,160,0,0);
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[coming viewWillAppear:YES];
[going viewWillAppear:YES];
coming.view.frame = CGRectMake(0, 0, 320, 480);
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];
我看來,可惜沒有更新導航欄。有沒有辦法做到這一點手動?
在樣本代碼,一個函數被調用所有0.03秒,更新視圖的變換。 不幸的是,當推UIViewController
時,我無法調整視圖的框架...我是嗎?
我已經嘗試了這種方法,但問題在於,當您使用此推送時,第一個視圖控制器會在下一個控制器啓動動畫之前消失。應該發生的事情是:1)下一個視圖控制器動畫,其視圖完全覆蓋舊的vc視圖,然後彈出舊的vc。我正在編譯的iOS 4.3,這是行不通的。 – SpaceDog 2012-10-05 10:47:21
這不可擴展。導航控制器應該處理動畫。這是一個黑客,你必須爲每個推送的視圖控制器實施。 – 2014-01-20 03:39:06