【问题标题】:PresentModalViewController with some frame带有一些框架的 PresentModalViewController
【发布时间】:2012-06-27 15:45:11
【问题描述】:

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

这可能吗?

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

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

怎么做?

【问题讨论】:

    标签: iphone ios presentmodalviewcontroller uimodalpresentationstyle


    【解决方案1】:

    不能呈现具有较小框架尺寸的模态视图控制器。

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

    【讨论】:

      【解决方案2】:

      呈现模态视图将覆盖整个视图,如果您不想覆盖整个视图,那么您应该自己创建视图,将其作为子视图添加到当前视图,然后自己为其过渡设置动画。它不会是一个单独的 viewController,因为您仍在原始视图的范围内操作。

      【讨论】:

        【解决方案3】:

        是的。有可能的。请按照以下步骤操作:

        - (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 的当前视图控制器框架。

        【讨论】:

        • 为什么要在 UIKeyboardWillShowNotification 后呈现模态视图?仅供参考:iPhone 和 iPad 的模式视图控制器行为不同
        • 同意,这就是为什么我在 iPad 考虑中添加了我的答案。而且我添加了键盘通知,因为大多数人都在使用文本字段查看此控制器,这意味着键盘输入设置。
        • @ABC1.. 你到底想做什么?这里我不会使用任何键盘通知。对于一些按钮动作,我需要用一个小视图提示用户输入他的名字。你能清楚地解释一下你到底想在这里做什么吗?
        • 好的。如果您当前的视图控制器不包含任何文本字段,那么在这种情况下无需添加任何键盘通知,只需在当前视图设置后在 viewDidLoad 方法中设置框架即可。我添加了这个通知来处理模态视图的框架。如果视图包含任何文本字段并且用户想在此时触发键盘向上事件添加文本,我们必须相应地更改当前视图的框架。另外,请根据您的要求设置矩形属性。这里我只给出了示例值。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-26
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2011-12-05
        • 2012-02-14
        相关资源
        最近更新 更多