removeFromSuperview()阻止UIView输入

时间:2017-04-25 14:17:40

标签: ios swift uiview

首先,不是这不是骗局我在这里尝试过很多类似问题的答案都无济于事。

当我按下hideButton并运行removeFromSuperview()时,删除了OneView,当我按下menuButton时,会重新创建OneView但不接受输入?有人可以帮忙吗?

theOneView是我的viewcontroller视图。

  import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {
    @IBOutlet var MyView: UIView!

    @IBAction func showButton(_ sender: Any) {
        print ("Show")
        if (MyView != nil){
            MyView.removeFromSuperview()
        }
        let webView = WKWebView(frame: MyView.frame)
        let inputURL = URL(string: "https://google.com")
        webView.load(URLRequest(url: inputURL!))
        MyView.addSubview(webView)
        self.view.addSubview(MyView)
        //theOneView.bringSubview(toFront: webView)
        //self.view.bringSubview(toFront: theOneView)
    }

    @IBAction func hideButton(_ sender: Any) {
        print ("Hide")
        MyView.removeFromSuperview()
    }
}

1 个答案:

答案 0 :(得分:2)

来自文档:

  

func removeFromSuperview()

     

取消链接视图与其超级视图及其窗口,并将其删除   来自响应者链。如果视图的superview不是nil,那么   superview发布视图。调用此方法将删除任何   引用要删除或引用的视图的约束   您要删除的视图子树中的任何视图。

相反,您应该使用视图的hidden属性。