2017-02-27 5 views
-2

Ich habe Label in der UIView hinzugefügt und seine Steckdose erstellt, dann habe ich mit Hilfe von UITapGestureRecognizer die Funktionalität hinzugefügt, aber wenn ich tippe oder klicke in das Etikett. Beschriftungstext ändert sich nicht. Ich suchte nach der ähnlichen Frage und ich bekam die Antwort auch, was ich geschrieben habe, aber der Etikettentext ändert sich nicht. Code in Swift 3.0 geschrieben. Hier ist der Code, den ich geschrieben habe -Können wir UILabel Tap Gesture hinzufügen?

import UIKit 

class testingViewController: UIViewController { 

    @IBOutlet weak var testLabel: UILabel! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     let tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(showDatePicker)) 
     tap.numberOfTouchesRequired = 1 
     tap.numberOfTapsRequired = 1 
     testLabel.addGestureRecognizer(tap) 
     testLabel.isUserInteractionEnabled = true// after adding this it worked 
     // Do any additional setup after loading the view. 
    } 

    func showDatePicker(){ 
    print("testing") 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    /* 
    // MARK: - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

} 
+1

überprüfen Interaktion mit dem Benutzer für das Label setzen. siehe Antwort von Duncan C – Krunal

+0

@KrunalBhavsar userInteraction wurde im StoryBoard aktiviert, aber als ich den Code hinzugefügt habe, hat es funktioniert warum so – Ronit

+0

Bitte überprüfen Sie, ob es eine andere Ansicht (transparente Ansicht) über das Läppen Ihres Labels gibt. Können Sie Ihren Quellcode (Projekt) teilen, wenn er nicht vertraulich ist? – Krunal

Antwort

6

Ja können Sie, aber Sie müssen das Label des isUserInteractionEnabled Flag auf true

+0

userInteraction wurde bereits im Storyboard aktiviert, aber als ich den Code testLabel.isUserInteractionEnabled = true hinzugefügt habe, hat es funktioniert, warum ist es so? – Ronit

+1

Ich bin mir nicht sicher. Das Setzen des Flags in IB (Interface Builder) sollte ebenfalls funktionieren. –

+0

Ich weiß, ich habe die Frage erneut gestellt, aber ich fragte, weil die userInteraction vom Storyboard aktiviert wurde und es nicht funktionierte – Ronit

Verwandte Themen