1

小さなフレームでビューの中央に modalViewController を表示したいと思います。

それは可能ですか?

viewController オブジェクトにフレームを設定しても、presentModelViewController はそのビューをフルスクリーン モードで表示しています。

また、 modalPresentationStyle を として使用しましたUIModalPresentationFormSheet。それよりもさらに小さいフレームが欲しいです。

どうやってするか?

4

3 に答える 3

5

フレーム サイズが小さいモーダル ビュー コントローラーを表示することはできません。

モーダル ビュー コントローラーの背景を透明に設定してから、小さいサイズのビューを中央 (または表示したい場所) に追加することができます。

于 2012-06-27T15:50:15.473 に答える
1

モーダル ビューを表示すると、ビュー全体がカバーされます。ビュー全体をカバーしたくない場合は、自分でビューを作成し、それを現在のビューに subView として追加してから、その遷移を自分でアニメーション化する必要があります。元のビューの境界内で操作しているため、別個の viewController にはなりません。

于 2012-06-27T15:56:59.210 に答える
0

はい。可能です。以下の手順に従ってください。

- (void)viewDidLoad {
     [super viewDidLoad];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShown:) name:UIKeyboardWillShowNotification object:nil];
     CGRect rect = CGRectMake(242, 60, 540, 312);
     self.controller.view.superview.frame = [self.view convertRect:rect toView:self.controller.view.superview.superview];
}

- (void)keyboardWillShown:(NSNotification*)aNotification {
     CGRect rect = CGRectMake(242, 60, 540, 312);
     self.controller.view.superview.frame = [self.view convertRect:rect toView:self.controller.view.superview.superview];
}

コントローラの設定後(viewDidLoadメソッドが終了する直前)に現在のコントローラのフレームを設定する必要があります。

ここでは、iPadの現在のビューコントローラフレームについて検討しました。

于 2012-06-27T16:09:45.340 に答える