skip to Main Content

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


  1. You need to handle the state

    @objc func long(_ tap:UILongPressGestureRecognizer) {
        switch(tap.state) {
           case .began:
               // to do
           case .ended:
               // to do
           default: break
        }
    }
    
    Login or Signup to reply.
  2. 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)

    Login or Signup to reply.
  3. 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.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search