Ich versuche, Etiketten in Swift hinzufügen, die in einer Schleife hinzugefügt werden. Ich möchte dann ein "TapGesture" -Ereignis zu jedem hinzufügen, wenn sie hinzugefügt werden. Es funktioniert, aber das Problem besteht darin, dass die aufgerufene Funktion Daten von der zu verwendenden Beschriftung verwendet, wenn sie angeklickt wird, aber die Beschriftung wurde dann neu definiert und es werden Daten von der zuletzt hinzugefügten verwendet, nicht die angeklickte. Wie kann ich jedes einzigartig machen?Wie 'AddTarget' zu UILabel in Swift
self.label.attributedText = self.myMutableString
let tapGesture = UITapGestureRecognizer(target: self, action: handleTap(label))
self.label.userInteractionEnabled=true
self.label.addGestureRecognizer(tapGesture)
self.label.font = UIFont.boldSystemFontOfSize(28)
self.label.sizeToFit()
self.label.center = CGPoint(x: screenWidth, y: top)
if(kilom>=30||self.located==false){
self.scroller.addSubview(self.label)
if(device=="iPhone"||device=="iPhone Simulator"){
top = top+80
}
else{
top = top+140
}
}
Der folgende Code ist die Gestenerkenner, dass das Etikett Daten und verwendet es wird:
func handleTap(sender:UILabel){
var a = self.label.text
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let resultViewController = storyBoard.instantiateViewControllerWithIdentifier("displayer")
self.presentViewController(resultViewController, animated: true, completion: nil)
}
Okay, danke. –
Aus dem Code, den Sie gepostet haben, scheint es, dass Sie nur ein Label haben. Sie ändern seine Attribute, aber Sie erstellen kein neues (außer es ist in Code, den Sie nicht enthalten). –