Nikki
Nikki

Reputation: 192

Perform action on button click

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

Upvotes: 1

Views: 513

Answers (3)

Asteroid
Asteroid

Reputation: 1118

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.

Upvotes: 1

Prabha
Prabha

Reputation: 434

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)

Upvotes: 0

Shehata Gamal
Shehata Gamal

Reputation: 100541

You need to handle the state

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

Upvotes: 1

Related Questions