1

我想在视图的中心展示一个带有小框架的 modalViewController。

那可能吗?

即使我为 viewController 对象设置了一些框架,presentModelViewController 也会以全屏模式显示该视图。

另外,我使用 modalPresentationStyle 作为UIModalPresentationFormSheet. 我想要比这更小的框架。

怎么做?

4

3 回答 3

5

不能呈现具有较小帧大小的模态视图控制器。

您可以尝试做的是将模态视图控制器的背景设置为透明,然后在中心(或您希望看到的任何地方)添加较小尺寸的视图。

于 2012-06-27T15:50:15.473 回答
1

呈现模态视图将覆盖整个视图,如果您不想覆盖整个视图,那么您应该自己创建视图,将其作为子视图添加到当前视图,然后自己为其过渡设置动画。它不会是一个单独的 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 回答