如何在情节提要中正确创建覆盖视图?

Posted

技术标签:

【中文标题】如何在情节提要中正确创建覆盖视图?【英文标题】:How to properly create an overlay view in storyboard? 【发布时间】:2017-12-17 11:32:44 【问题描述】:

我的目标是在单击按钮后在按钮下方创建一个弹出视图,这是概念:

我准备故事板的方式是使用两个不同的 UIViewController。主要的包含两个按钮,一旦单击,我会模态地将第二个 UIViewController 推到当前上下文中。

我的问题是:为了将“点击”图像移动到按钮正下方,创建约束的最佳或正确方法是什么?

【问题讨论】:

【参考方案1】:

我这样做的方法是在您的第一个故事板 vc 中添加一个子控制器。然后在storyboard中调整container view的frame,希望比通过程序调整frame更容易。

然后确保在 Xcode 为您创建的 VC 之上更改类。

【讨论】:

【参考方案2】:

当按钮被点击时,获取它的底部位置(它是框架中的 y + 高度)并将其发送到弹出窗口,然后将它们设置为弹出窗口中 imageView 的 top 约束viewDidLayoutSubview

【讨论】:

【参考方案3】:

您可以使用按钮和view 的位置和尺寸来计算叠加层的位置。例如,叠加层的 y 可以是按钮的 frame.maxY + constant

let x = ...
let y = ...
let width = ...
let height = ...
let overlay = UIView(frame: CGRect(x: x, y: y, width: width, height: height))
 view.addSubView(overlay)

半透明黑色视图可以添加为UIView,与VC 的view 具有相同的框架,并限制为始终与VC 的view 的框架相同。先添加这个视图,然后再添加overlay

【讨论】:

以上是关于如何在情节提要中正确创建覆盖视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在情节提要中从一个视图转到另一个视图

如何正确处理情节提要中的类似视图,这些视图具有类似的控制器而无需重复代码?

在使用情节提要时不确定如何正确继承 UIApplication

如何使用情节提要从自定义 uitableviewcell 正确启动弹出框转场

如何从情节提要中的自定义视图制作@IBAction?

如何让 UIToolbar 在静态表格视图中正确显示?