2011-11-20 181 views
2

我正在嘗試在iOS設備上創建切換視圖的動畫。 我已經創建了三個視圖的應用程序,我有一些導航按鈕。 我用它來切換視圖的方法是這樣的:iOS視圖動畫

-(IBAction) loadThirdView:(id)sender { 
[self clearView]; 
self.thirdViewController.view.frame = CGRectMake(0, 208, 160, 208); 
[self.view insertSubview:thirdViewController.view atIndex:0]; 
} 

正如你可以看到這是一次我按下按鈕時發生的動作。我想要的是以動畫方式出現的新視圖。 具體而言,我希望它從屏幕的左側開始向右滑動。我不想讓它出現。

這可能嗎?我該怎麼做?

回答

4

哦不!啊,不!請不要以這種方式顯示UIViewController。

出示您的UIViewController這樣:

[self presentModalViewController:self.thirdViewController animated:YES] 

之前提出它,你可以更改視圖控制器的modalTransitionStyle屬性來滿足您的需求。

如果使用一個UINavigationController,使用代替:

[yourNavController pushModalViewController:self.thirdViewController animated:YES] 

這是一個不錯的文章(如果不是有點太苛刻):Abusing UIViewControllers

要製作動畫您特別希望的方式(如UINavigationController風格是從右側滑入的),您可能想要使用類似於此SO問題中提出的內容:iPhone Pushing View Controller in a left direction

3

您可以嘗試

[UIView transitionFromView:currView toView:nextView duration:0.5f options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil]; 

如果你想要不同類型的動畫。有很多AnimationsOptions你可以選擇,只需設置options:

0

示例代碼:

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

[UIView setAnimationDuration:0.6]; 
yourImageVieew.alpha=0.9;//insert here what you want 

[UIView commitAnimations];