0

私のiPhoneアプリでは、背景が透明なモーダルビューを表示する必要があります。これは、ビューの中心から表示され、サイズが大きくなっているように、アニメーションで表示されるはずです。

設定ボタンをクリックしたときの「何かを描く」iPhoneアプリのようなものです。

どうすればよいですか?

4

3 に答える 3

3

提示したい aScoreSheet と呼ばれる viewController があるとします。プレゼンテーションを行うView Controllerでこのメソッドを定義してみてください。

-(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;
                     }];
}


}
于 2012-05-23T06:21:27.617 に答える
3

次の 4 つのトランジション スタイルのいずれかを実行できます。

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

[self presentModalViewController:viewController animated:YES];

これらのデフォルトに含まれていないものが必要な場合は、モーダル ビューを表示するための独自のカスタム アニメーションを作成する必要があります。次のようにしますが、明らかにあなたが望むスタイルです。

UIModalTransitionStyle 水平移動

于 2012-05-22T10:16:26.170 に答える
0

完全な答えではありませんが、次のオープン ソース ライブラリをご覧ください。

https://github.com/Split82/HMGLTransitions

いくつかのカスタム モーダル トランジションがあり、探しているトランジションではないかもしれませんが、サブクラス化することでトランジションを簡単に追加できますHMGLTransition

お役に立てれば

于 2012-05-22T10:19:21.923 に答える