2012-05-22 53 views
0

在我的iPhone應用程序中,我需要顯示具有透明背景的模式視圖,它應該以動畫形式出現,就像它從視圖中心出現並且其大小正在增加。呈現帶動畫效果的模態視圖

類似於「繪製東西」iPhone應用程序,當我們點擊設置按鈕。

我該怎麼做?

回答

3

你可以做以下4種過渡樣式之一:

viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
viewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl; 

[self presentModalViewController:viewController animated:YES]; 

如果你想要的是不包括在這些默認值,你將不得不建立自己的自定義動畫呈現模式的某種看法。像以下但顯然是你想要的風格。

UIModalTransitionStyle horizontal movement

0

不是一個完整的答案,但也許你可以看看這個開放源碼庫:

https://github.com/Split82/HMGLTransitions

它有一些定製模式的轉變,也許正是一個沒有你尋找,但您可以通過繼承HMGLTransition輕鬆添加轉換。

希望這有助於

3

比方說,你必須要呈現的viewController這就是所謂的aScoreSheet。嘗試在視圖控制器中定義該方法,該方法將執行呈現。

-(void) presentTransparentModalViewController: (ScoreSheet *) aViewController 
{ 

    scoreSheet = aViewController; 
    UIView *view = aViewController.view; 

view.opaque = NO; 
[view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    UIView *each = obj; 
    each.opaque = NO; 
}]; 
    [self.view addSubview:view]; 

    view.center = CGPointMake(160, 800); //for iPhone 

    [UIView animateWithDuration:0.9 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{ 
     view.center = CGPointMake(160, 240); 
    } completion:^(BOOL finished) { 

     self.view.userInteractionEnabled=YES; 
    }]; 

} 

,然後以關閉該控制器:

-(void) dismissTransparentModalViewControllerAnimated:(BOOL) animated{ 

if (animated) { 

    [UIView animateWithDuration:0.4 
        animations:^{ 
         scoreSheet.view.center = CGPointMake(scoreSheet.view.center.x, scoreSheet.view.center.y + 480); 
        } completion:^(BOOL finished) { 
         [scoreSheet.view removeFromSuperview]; 
         scoreSheet = nil; 
        }]; 
} 


} 
相關問題