在我的iPhone應用程序中,我需要顯示具有透明背景的模式視圖,它應該以動畫形式出現,就像它從視圖中心出現並且其大小正在增加。呈現帶動畫效果的模態視圖
類似於「繪製東西」iPhone應用程序,當我們點擊設置按鈕。
我該怎麼做?
在我的iPhone應用程序中,我需要顯示具有透明背景的模式視圖,它應該以動畫形式出現,就像它從視圖中心出現並且其大小正在增加。呈現帶動畫效果的模態視圖
類似於「繪製東西」iPhone應用程序,當我們點擊設置按鈕。
我該怎麼做?
你可以做以下4種過渡樣式之一:
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
viewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:viewController animated:YES];
如果你想要的是不包括在這些默認值,你將不得不建立自己的自定義動畫呈現模式的某種看法。像以下但顯然是你想要的風格。
不是一個完整的答案,但也許你可以看看這個開放源碼庫:
https://github.com/Split82/HMGLTransitions
它有一些定製模式的轉變,也許正是一個沒有你尋找,但您可以通過繼承HMGLTransition
輕鬆添加轉換。
希望這有助於
比方說,你必須要呈現的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;
}];
}
}