Swift, UILongPressGestureRecognizer не работает в UIlabel

Я пытаюсь долго нажимать Gesture в Swift для параметра копирования.

Но это не работает. Он также не идентифицирует жест в UiView или UILabel.

Ниже мой код

В представлении DidLoad

     let copyLongPress = UILongPressGestureRecognizer(target: self, action: #selector(ContactDetailController.handleLongPress(_:)))
    copyLongPress.numberOfTouchesRequired = 0
    copyLongPress.delegate = self
    copyLongPress.minimumPressDuration=0.5
    self.lblDynaMobile.addGestureRecognizer(copyLongPress)
    self.lblDynaMobile.userInteractionEnabled = true
    self.lblDynaDDI.addGestureRecognizer(copyLongPress)
     self.lblDynaDDI.userInteractionEnabled = true
    self.GeneralView.addGestureRecognizer(copyLongPress)
    self.EmailView.addGestureRecognizer(copyLongPress)
    self.AddressView.addGestureRecognizer(copyLongPress) 

Новый метод

func handleLongPress(longPressView :UILongPressGestureRecognizer) {

    let lblFont:UILabel = (longPressView.view as? UILabel)!
    UIPasteboard.generalPasteboard().string = lblFont.text

}

Я также добавил UIGestureRecognizerDelegate в объявление класса


person dhaval shah    schedule 18.05.2016    source источник


Ответы (1)


Попробуйте это и посмотрите (это работает).

// in viewDidLoad()
let copyLongPress = UILongPressGestureRecognizer(target: self, action: #selector(self.handleLongPress(_:)))
self.lblDynaMobile.addGestureRecognizer(copyLongPress)

func handleLongPress(_ gesture: UILongPressGestureRecognizer) {

    if let lblFont = gesture.view as? UILabel {
      //UIPasteboard.generalPasteboard().string = lblFont.text
    }

}
person Krunal    schedule 26.07.2017