Swift addsubview and remove it

前端 未结 5 1293
一向
一向 2020-12-13 03:15

I want to add sub view and remove with one tap. This is my code:

/* To add subview */

var testView: UIView = UIView(frame: CGRectMake(0, 0, 320, 56         


        
5条回答
  •  难免孤独
    2020-12-13 04:01

    Thanks for help. This is the solution: I created the subview and i add a gesture to remove it

    @IBAction func infoView(sender: UIButton) {
        var testView: UIView = UIView(frame: CGRectMake(0, 0, 320, 568))
        testView.backgroundColor = UIColor.blueColor()
        testView.alpha = 0.5
        testView.tag = 100
        testView.userInteractionEnabled = true
        self.view.addSubview(testView)
    
        let aSelector : Selector = "removeSubview"
        let tapGesture = UITapGestureRecognizer(target:self, action: aSelector)
        testView.addGestureRecognizer(tapGesture)
    }
    
    func removeSubview(){
        println("Start remove sibview")
        if let viewWithTag = self.view.viewWithTag(100) {
            viewWithTag.removeFromSuperview()
        }else{
            println("No!")
        }
    }
    

    Update:

    Swift 3+

    @IBAction func infoView(sender: UIButton) {
        let testView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 568))
        testView.backgroundColor = .blue
        testView.alpha = 0.5
        testView.tag = 100
        testView.isUserInteractionEnabled = true
        self.view.addSubview(testView)
    
        let aSelector : Selector = #selector(GasMapViewController.removeSubview)
        let tapGesture = UITapGestureRecognizer(target:self, action: aSelector)
        testView.addGestureRecognizer(tapGesture)
    }
    
    func removeSubview(){
        print("Start remove sibview")
        if let viewWithTag = self.view.viewWithTag(100) {
            viewWithTag.removeFromSuperview()
        }else{
            print("No!")
        }
    }
    

提交回复
热议问题