1

I have a pop up UIView as a control window. Contains sliders and buttons from the AudioKitUI framework. I have a touch tap gesture set up to close the Pop up view but of course it also closes the UIview when I tap a button. Is it possible to ignore the tap gesture when the AKButton is pressed?

Everything is enclosed in its own class structure. This is the gesture code at the top of my Overide Init.

override init(frame: CGRect) {
        super.init(frame: frame)

        self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(animateout)))

and the code for my AKButton.

   // Dynamics on/off button
        let dynamicsButton = AKButton(title: "") { button in
            if boxDynamicStatus[boxBloqDoubleTapped] == false {
                button.title = "FLOATING"
                boxDynamicStatus[boxBloqDoubleTapped] = true
                boxBloqArray[boxBloqDoubleTapped].physicsBody?.isDynamic = true
            } else {
                boxDynamicStatus[boxBloqDoubleTapped] = false
                button.title = "FIXED"
                boxBloqArray[boxBloqDoubleTapped].physicsBody?.isDynamic = false
            }
        }
        // Set button text from box array
        if boxDynamicStatus[boxBloqDoubleTapped] == false {
            dynamicsButton.title = "FIXED"
        } else {
            dynamicsButton.title = "FLOATING"
        }

I don't get this issue with the sliders I suppose because of the moving gesture rather than it being a tap.

All the buttons/sliders are held within a container

fileprivate let container: UIView = {
        let v = UIView()
        v.translatesAutoresizingMaskIntoConstraints = false
        v.backgroundColor = UIColor.black.withAlphaComponent(0.3)
        v.layer.cornerRadius = 5

        return v

    }()

can the gesture be programmed to not register within the container margins?

Mayank
  • 315
  • 2
  • 13
mrmac
  • 61
  • 5

1 Answers1

0

I think this may be the effectively the same question as here: Prevent click through view in swift

So, it could be solved with the z-index ordering of your views. If you provided a working version of your code, or some playground version, I could test, but this is the best I can suggest with the information given.

Aurelius Prochazka
  • 4,510
  • 2
  • 11
  • 34