1

次のパラメータを使用して、ビューのモーダルプレゼンテーションを変更する必要があります。

1-モーダルビューは、iPadの画面の右半分のみを塗りつぶします。
2-アニメーションは画面の左半分から実行されます。

私はiosframeworks.com、cocoacontrols.com、ビッグオタクラチからの本、iosレシピ、限界を押し上げるios、stackoverflow、googleを検索しました。それを行う可能性はありますか?
あなたの援助をありがとう

テストのために、回答を検索して2日後、次のコードを作成します。ルートビューコントローラーCMMainView、ビューコントローラーCMVistaModalが空であり、オーバーライドされたメソッド、xib、または別の変数がないため、次のコードを実行しています。デバイスファミリはiPadです

-(IBAction)accion:(id)sender
{

CMVistaModal *modal = [[CMVistaModal alloc] init];

[modal setModalPresentationStyle:UIModalPresentationFormSheet];

[self presentViewController:modal animated:NO completion:nil];
[modal.view.superview setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[modal.view.superview setFrame:CGRectMake(800, 120, 200, 500)];
[UIView animateWithDuration:1 animations:^{
    modal.view.superview.transform = CGAffineTransformMakeTranslation(-200, 0);
}];
}

同じ操作を実行できますが、CMVistaModalのメソッドをオーバーライドするにはどうすればよいですか?

4

2 に答える 2

1

絶対。新しいビューを作成し、それを既存のビューに追加して、所定の位置にアニメーション化するだけです。その背後に別のビューを表示して、他のビューへのタッチをブロックすることができます。

于 2012-06-04T13:04:33.833 に答える
0

何でも可能です。それはあなたがどれだけの仕事をしたいかに依存します。

つまり、標準UIModalPresentationFormSheetまたはUIModalPresentationPageSheet無料で提供されます。しかし、あなたが望むものは標準ではないので、あなたはあなた自身を焼かなければなりません。

ここで行うのは、「偽の」モーダルを作成することです。

XYViewController -> Container View

Container View -> Semi Opaque blocker
               -> Half Screen Content

ブロッカーは画面全体をカバーし、すぐに入り、UIの他の部分との相互作用を防ぎます

次に、標準のフレームアニメーションを使用して、左から「ハーフスクリーンコンテンツ」をアニメーション化します。この偽のモーダルをどのように却下するかはあなた次第ですが、左から入ってくる場合は、おそらく左に出発する必要があります。

于 2012-06-04T13:10:01.477 に答える