Perform action on button click

Viewed 50

As long as you are tapping on the button, the action should be performed. As soon as you release the button, the action that is performed will be removed.

I am using a long-press Gesture but it didn't work.

let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(long)) 
@objc func long() {
    topImageView.image = originalImage
    topImageView.isHidden = false
    lassoimageView.isHidden = true
    middleImageView.isHidden = true
    overlayImage.isHidden = true
    buttonTap = "Eye"
}
3 Answers

You need to handle the state

@objc func long(_ tap:UILongPressGestureRecognizer) {
    switch(tap.state) {
       case .began:
           // to do
       case .ended:
           // to do
       default: break
    }
}

In your code you haven’t added the gesture to your button. Like this:

myButton.addGestureRecognizer(longGesture)

Then you can handle start and events as @Sh_Khan mentioned.

Use .touchDown to perform action on button click

// This will start your button action.

button.addTarget(self, action: #selector(start), for: .touchDown)

// This will end your button action.

button.addTarget(self, action: #selector(end), for: .touchUpInside)

Related