gpt4 book ai didi

iPad FormSheet/PageSheet 模态视图,旋转时会填满整个屏幕。T

转载 作者:行者123 更新时间:2023-12-01 11:57:48 37 4
gpt4 key购买 nike

我有一个 iPad 应用程序,它有一个 UITabBarController作为根 Controller 。在其中一个选项卡中,我有一个 UIToolBar其中包含 UIBarButtonItem ,单击时会启动模态视图。

首次启动时(横向和纵向)模态视图以正确的大小显示,但是如果您旋转设备,则模态视图将扩展以填满屏幕 - 无论您从该点开始旋转设备多少。

我正在从标签栏启动模态视图,并设置了 ModalPresentationStyle在要呈现的 View 中。

无论我是否将其设置为 FormSheet,这都会影响 ModalView或 PageSheet .

有没有人遇到过类似的行为,如果有,您是如何解决的?

非常感谢

编辑

我还注意到,自 4.2 以来,当使用模态样式页面/表单表时,模态视图后面的 View 不再变暗 - 我呈现的 View 是错误的,还是这只是 4.2 的标准?

编辑 2

代码:
在我的默认 UIViewController我简单地呈现模态视图如下:

void HandleNewMsgButtonTouch(object sender, EventArgs e)
{
PresentModalViewController(new ComposeMsgView(), true);
}

在模态视图本身中,我已在 LoadView 中指定覆盖:
public override void LoadView()
{
base.LoadView ();
...
// initialser code related to the view
...
View.AutoresizingMask = UIViewAutoresizing.None;
ModalPresentationStyle = UIModalPresentationStyle.PageSheet;
ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
}

我已经覆盖了 ShouldAutoRotateToInterfaceOrientation也总是返回 true。

无论我是否使用 Formsheet/Pagesheet,它们在首次启动时都会显示正确的宽度(无论是横向还是纵向 - 我知道 PageSheet 将填充纵向 View )但是在旋转时,模态视图将填充屏幕(如如果我用 FullScreen 呈现 ModalView)。

最佳答案

如评论中所述,试试这个:

void HandleNewMsgButtonTouch(object sender, EventArgs e)
{
UIViewController oController = new ComposeMsgView();
oController.ModalPresentationStyle = UIModalPresentationStyle.PageSheet;
PresentModalViewController(oController, true);
}
LoadView() 来不及设置属性。
以前的内容:
请发布一些代码。 View 肯定变暗了,在 4.2 中也是如此。
我假设您在错误的 Controller 上设置了演示样式,因为“PageSheet”在纵向模式下会转换为全屏。
您必须在要在模态视图中显示的 Controller 上设置演示样式,而不是在正在显示的 Controller 上。因此,如果您要显示的 Controller 是“oToShow”,而您要显示的 Controller 是“oCurrent”,则您必须为“oToShow”设置样式。
尝试将其设置为 FormSheet,它将始终位于顶部并且永远不会全屏显示。
勒内

关于iPad FormSheet/PageSheet 模态视图,旋转时会填满整个屏幕。T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470524/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com