小さなフレームでビューの中央に modalViewController を表示したいと思います。
それは可能ですか?
viewController オブジェクトにフレームを設定しても、presentModelViewController はそのビューをフルスクリーン モードで表示しています。
また、 modalPresentationStyle を として使用しましたUIModalPresentationFormSheet。それよりもさらに小さいフレームが欲しいです。
どうやってするか?
小さなフレームでビューの中央に modalViewController を表示したいと思います。
それは可能ですか?
viewController オブジェクトにフレームを設定しても、presentModelViewController はそのビューをフルスクリーン モードで表示しています。
また、 modalPresentationStyle を として使用しましたUIModalPresentationFormSheet。それよりもさらに小さいフレームが欲しいです。
どうやってするか?
フレーム サイズが小さいモーダル ビュー コントローラーを表示することはできません。
モーダル ビュー コントローラーの背景を透明に設定してから、小さいサイズのビューを中央 (または表示したい場所) に追加することができます。
モーダル ビューを表示すると、ビュー全体がカバーされます。ビュー全体をカバーしたくない場合は、自分でビューを作成し、それを現在のビューに subView として追加してから、その遷移を自分でアニメーション化する必要があります。元のビューの境界内で操作しているため、別個の viewController にはなりません。
はい。可能です。以下の手順に従ってください。
- (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の現在のビューコントローラフレームについて検討しました。