我想在视图的中心展示一个带有小框架的 modalViewController。
那可能吗?
即使我为 viewController 对象设置了一些框架,presentModelViewController 也会以全屏模式显示该视图。
另外,我使用 modalPresentationStyle 作为UIModalPresentationFormSheet
. 我想要比这更小的框架。
怎么做?
我想在视图的中心展示一个带有小框架的 modalViewController。
那可能吗?
即使我为 viewController 对象设置了一些框架,presentModelViewController 也会以全屏模式显示该视图。
另外,我使用 modalPresentationStyle 作为UIModalPresentationFormSheet
. 我想要比这更小的框架。
怎么做?
您不能呈现具有较小帧大小的模态视图控制器。
您可以尝试做的是将模态视图控制器的背景设置为透明,然后在中心(或您希望看到的任何地方)添加较小尺寸的视图。
呈现模态视图将覆盖整个视图,如果您不想覆盖整个视图,那么您应该自己创建视图,将其作为子视图添加到当前视图,然后自己为其过渡设置动画。它不会是一个单独的 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 的当前视图控制器框架。