故事板:如何弹出而不是全屏

Posted

技术标签:

【中文标题】故事板:如何弹出而不是全屏【英文标题】:Storyboard: How to popover not full screen 【发布时间】:2017-12-20 12:11:41 【问题描述】:

按下亮度按钮时需要弹出窗口。 Popover 不需要是全尺寸的。我尝试了几种设置,但它始终显示为全尺寸屏幕。你认为我需要保持 280x150 像素吗?

【问题讨论】:

【参考方案1】:

听起来这可能是默认 ios 弹出框行为的问题。默认情况下,弹出框仅用于 iPad/Regular Width 尺寸类别,并且是 iPhone/Conpact Width 尺寸类别上的全屏模式。

此 WWDC 会议涵盖了该默认行为,以及如何覆盖它以在 iPhone 上具有弹出式演示样式:

https://developer.apple.com/videos/play/wwdc2014/214/。 (跳到 36:15 左右)

【讨论】:

嗨!添加了另一个截图,是的,我试过了,设置Preferred Content Size @János Ohh...你是在 iPad 还是 iPhone 上运行它?默认情况下,Popover 会在 iPhone 上“适应”全屏模式,除非您编写一些代码来更改该行为。当您在 iPad 上运行它时,这看起来像一个小弹出框吗? 在 iPhone 上,有问题吗?【参考方案2】:

我看到你在情节提要中把它当作亮度,你可以准备把它写成亮度

【讨论】:

prepare(for segue 在按下亮度按钮时没有被调用,为什么? VC 只是全屏显示。 确保prepare中的seque u句柄的名字是brightness 不,处理程序根本没有被调用。【参考方案3】:

    在其视图中创建带有 UIView 的 childViewController,并在其中包含您想要显示为弹出窗口的适当约束和 UI 元素。

    设置childViewController的背景颜色为默认颜色。

    将 segue 从视图(例如按钮,单击时必须将 childViewController 显示为弹出窗口)添加到 childViewController,类型为 Present Modally,演示文稿“Over current context”,过渡类型为“Cross Dissolve”。

    确保您已在 childViewController 视图中正确添加了视图约束,以便它在正确的位置显示为弹出窗口。

【讨论】:

以上是关于故事板:如何弹出而不是全屏的主要内容,如果未能解决你的问题,请参考以下文章

使用 Autolayout 和通用故事板超级视图是否全屏?

iOS 故事板 UINavigationController 不正确地弹出视图(向下滑动,而不是向右滑动)

在通用故事板中使用 present 作为弹出框

故事板 - 弹出框的委托

如何在故事板中正确创建叠加视图?

有哪些用于应用程序故事板的工具,包括 GUI? [关闭]