我想要添加子视图,只需轻点即可删除. 这是我的代码:

要添加子视图:

var testView: UIView = UIView(frame: CGRectMake(0, 0, 320, 568))
testView.backgroundColor = UIColor.blueColor()
testView.alpha = 0.5
testView.tag = 100
super.view.userInteractionEnabled = false
self.view.userInteractionEnabled = true
self.view.addSubview(testView)

要删除子视图,请执行以下操作:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    let touch = touches.anyObject() as UITouch
    let point = touch.locationInView(self.view)
    
    if(testView.tag==100){
        println("Tag 100")
        testView.removeFromSuperview()
    }
    else{
        println("tag not found")
    }
}

但是移除它不起作用

推荐答案

谢谢你的帮助.这就是解决方案:

@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!")
    }
}

更新:

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!")
    }
}

Ios相关问答推荐

我如何确保用户继续他们在应用程序中停止的地方?

如何使用超薄material ,但没有浅色/填充?

验证开发人员应用程序证书是否已在您的设备上验证

如何在iOS 17中拦截UITextView中的链接点击?UITextItemInteraction已弃用

如何使用 Rxswift 处理程序最喜欢的按钮

如何更改 SwiftUI 弹出视图的大小?

ITMS-90432:将应用上传到应用store 时出现问题

iOS - 判断开发者模式是否开启 (Swift)

SwiftUI:通过Sheet将数据添加到Realm DB时视图不更新

swiftUI中的剪辑形状无法使用旋转效果

从父母到子元素的 Swift Pass 事件

Xcode 14 需要为 Pod Bundles Select 开发团队

有哪些可靠的机制可以防止 CoreData CloudKit 中的数据重复?

在 Swift 中合并子数组

如何在不同设备的segment控制中管理文本大小(text size)?

缺少推送通知权利

Swift枚举继承

当键盘出现在 iOS 中时,将 UIView 上移

如何缩小 UIImage 并使其同时变得清晰/锐利而不是模糊?

iPhone:什么是 WWDR 中级证书?