Sto cercando di aggiungere etichette in Swift, che vengono aggiunte in un ciclo. Quindi desidero aggiungere un evento "TapGesture" a ciascuno di essi man mano che vengono aggiunti. Funziona, ma il problema è che la funzione chiamata prende i dati dall'etichetta da usare quando viene cliccato, ma l'etichetta è stata ridefinita da allora e prende i dati dall'ultimo aggiunto, non quello che è stato cliccato. Come posso rendere ognuno unico?Come "aggiungiTarget" a 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
}
}
Il codice sotto è il sistema di riconoscimento gesto che ottiene i dati dell'etichetta e li utilizza:
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)
}
Va bene grazie. –
Dal codice che hai postato, sembra che tu abbia solo un'etichetta. Tu modifichi i suoi attributi ma non ne crei uno nuovo (a meno che non sia nel codice che non hai incluso). –