IOS 6 より前は、以下のコードを使用して、カスタマイズされたサイズのモーダル ビューを表示しました。
- (void) showModalViewWithController:(GUIViewController*) _viewController {
[UIView beginAnimations:@"" context:nil];
[self presentModalViewController:_viewController animated:YES];
_viewController.view.superview.autoresizingMask = UIViewAutoresizingFlexibleHeight;
_viewController.view.superview.frame = CGRectMake(
_viewController.view.superview.frame.origin.x,
_viewController.view.superview.frame.origin.y,
700.0f,
self.view.frame.size.height - 80.f);
_viewController.view.superview.center = self.view.center;
[UIView commitAnimations];
}
今、私は関数を変更する必要があります
- (void)presentModalViewController: (UIViewController *)viewControllerToPresent animated:(BOOL)flag
に
- (void)presentViewController: (UIViewController *)viewControllerToPresent animated: (BOOL)flag completion: (void (^)(void))completion
残念ながら、次のような変更後、サイズの調整はうまく機能しません。
- (void) showModalViewWithController:(GUIViewController*) _viewController {
[self presentViewController:_viewController animated:YES completion:^(){
[UIView beginAnimations:@"" context:nil];
_viewController.view.superview.autoresizingMask = UIViewAutoresizingFlexibleHeight;
_viewController.view.superview.frame = CGRectMake(
_viewController.view.superview.frame.origin.x,
_viewController.view.superview.frame.origin.y,
700.0f,
self.view.frame.size.height - 80.f);
_viewController.view.superview.center = self.view.center;
[UIView commitAnimations];
}];
}
フレーム操作の前にモーダル ビューが表示され、完了ブロックの呼び出し後にジャンプするためです。
それに対処する方法は?
前もって感謝します、
ミハウ