Swift - 添加一个不与当前Storyboard的视图重叠的UIView

时间:2017-07-08 00:08:00

标签: swift uiview uiviewcontroller popup xib

我正在尝试在我的绘图应用上完成以下任务:

我在.xib文件中设计了一个自定义UIView,只包含UIView中的“关闭”按钮。默认情况下,我不希望我的应用加载此UIView;我只想在我按下应用程序主视图上的按钮时加载它。弹出视图后,我仍然可以访问我的应用程序上的其他视图,而弹出窗口仍然打开。特别是,我仍然希望在我设置为“画布”的视图上画线。目前,我为此自定义弹出窗口添加了三个文件:从UIView继承的类文件,名为PopUpView.swift,另一个继承自UIViewController的类文件,名为PopUpViewController.swift,以及.xib文件。

在主ViewController中,我有以下代码

var popUp = popUpClass()    
@IBAction func showPopUp (sender: UIButton){
    self.view.addSubview(popUp)
    }

但是,当我点击它时,视图不会显示。我对代码流程应该是什么感到困惑,并且想知道是否有人可以给我提供帮助?

谢谢!

2 个答案:

答案 0 :(得分:0)

当我开始构建包含绘图的应用程序时遇到的一个问题是canvasView在使用override func draw(_ rect:CGRect)时绘制了子图层中的线条,因此如果要向画布添加任何视图,你将无法再看到你画的东西了。因此,如果要添加任何子视图,请将其添加到画布视图下方的视图中,并始终确保画布视图位于顶部,并具有清晰的背景颜色。

答案 1 :(得分:0)

所以,我想我可能找到了解决方案。我删除了我的.xib文件。我使用了容器视图,在其视图控制器上,我设计了弹出窗口。