“呈现为弹出框”segues 和视图大小

Posted

技术标签:

【中文标题】“呈现为弹出框”segues 和视图大小【英文标题】:"Present as Popover" segues and view size 【发布时间】:2015-04-16 12:33:24 【问题描述】:

任何人都可以指出有关如何将项目放置在将显示为弹出框的视图控制器中的任何指南/文档,以便使用自动布局适当地定位组件吗?

具体来说:我正在使用新的“Present as Popover”segue 和新的“通用”故事板在 Xcode 8.3 中工作。我添加了一个视图控制器,然后向该视图控制器添加了一个弹出框。当它显示时,我看到视图控制器的左上象限大致显示为弹出框,但据我所知,似乎没有发生自动布局以适应 iPad 弹出框的大小略有不同与不同尺寸 iPhone 上的“全屏”行为相比,实际上,根据设备不同,可以看到视图控制器的略有不同的部分。

我认为这并不是真正的事情应该如何工作,通用 popover segue 的全部存在理由是通过自动布局适当地适应 popover 大小?那么任何人都可以阐明我做错了什么或弹出窗口在自动布局方面应该如何工作?

【问题讨论】:

【参考方案1】:

使用弹出框需要注意的是,在 iPad 等设备上,弹出框的大小等级与引发它的控制器不同。

当您在 iPad 上使用弹出框时,您可能会发现尺寸等级从常规宽度变为紧凑宽度。如果您将弹出框内容的布局编码为常规宽度,则它在弹出框中将不起作用。

弹出框本身的大小来自所呈现控制器的内容大小属性。您可以在视图控制器的属性检查器或代码中显式设置此大小。见:How to present popover properly in ios 8

【讨论】:

谢谢——我认为问题在于我缺少“首选尺寸”以及对齐约束。现在看起来好多了!【参考方案2】:

要使元素在屏幕上正确显示,请在将充当视图控制器的情节提要中的元素添加到将充当弹出窗口。

【讨论】:

以上是关于“呈现为弹出框”segues 和视图大小的主要内容,如果未能解决你的问题,请参考以下文章

没有箭头无法定位弹出框

如何在 iPhone 上以编程方式在 Swift 中将 UIViewController 呈现为弹出框

在 iPad 上的 UIPopoverController 中显示 iPhone-View (iPhone SDK)

调整 PopOver 视图控制器的大小

如何创建一个透明的 ViewController? [复制]

使用 Storyboard Segues 关闭弹出视图