Swift - 添加一个不与当前 Storyboard 的视图重叠的 UIView
Posted
技术标签:
【中文标题】Swift - 添加一个不与当前 Storyboard 的视图重叠的 UIView【英文标题】:Swift - Add an UIView that does not overlap current Storyboard's Views 【发布时间】:2017-07-08 00:07:59 【问题描述】:我正在尝试在我的绘图应用上完成以下任务:
我在 .xib 文件中设计了一个自定义 UIView,在 UIView 中只包含一个“关闭”按钮。默认情况下,我不希望我的应用加载此 UIView;我只想在我按下应用程序主视图上的按钮时加载它。视图弹出后,我希望仍然能够访问我的应用程序上的其他视图,而弹出窗口仍然打开。特别是,我仍然想在我设置为“画布”的视图上画线。目前,我为这个自定义弹出添加了三个文件:一个从 UIView 继承的名为 PopUpView.swift 的类文件,另一个从 UIViewController 继承的名为 PopUpViewController.swift 的类文件,以及 .xib 文件。
在主 ViewController 中,我有以下代码
var popUp = popUpClass()
@IBAction func showPopUp (sender: UIButton)
self.view.addSubview(popUp)
但是,当我单击它时,视图不显示。我对代码流应该是什么感到有些困惑,想知道是否有人可以提供帮助?
谢谢!
【问题讨论】:
【参考方案1】:当我开始构建一个包含绘图的应用程序时遇到的一个问题是 canvasView 在使用覆盖函数 draw(_ rect: CGRect) 时会在子图层中绘制线条,所以如果您要向画布添加任何视图,你将不再能够看到你画的东西。因此,如果您想添加任何子视图,请将其添加到画布视图下方的视图中,并始终确保画布视图位于顶部且背景颜色清晰。
【讨论】:
是的,这是个好建议!【参考方案2】:所以,我想我可能已经找到了解决方案。我删除了我的 .xib 文件。我使用了一个容器视图,并在它的视图控制器上设计了我的弹出窗口。
【讨论】:
以上是关于Swift - 添加一个不与当前 Storyboard 的视图重叠的 UIView的主要内容,如果未能解决你的问题,请参考以下文章