ios - How to know the sender's identifier in Swift -


i have 2 uilabels 2 uitapgesturerecognizers in uitableviewcell.

cell.username.tag = indexpath.row cell.shareduser.tag = indexpath.row let tapgesturerecognizer2 = uitapgesturerecognizer(target:self, action:"gotoprofil:") let tapgesturerecognizer3 = uitapgesturerecognizer(target:self, action:"gotoprofil:") cell.username.userinteractionenabled = true cell.username.addgesturerecognizer(tapgesturerecognizer2) cell.shareduser.userinteractionenabled = true cell.shareduser.addgesturerecognizer(tapgesturerecognizer3)  func gotoprofil (sender: anyobject!) {     self.performseguewithidentifier("gotoprofilsegue", sender: sender) } 

i'm using segue push uiviewcontroller, , i'm overriding preparesegue function send needed information corresponding sender tag.

override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject!) {      let profilview = segue.destinationviewcontroller as! profil     profilview.hidesbottombarwhenpushed = true     profilview.title = posts[sender.view!.tag].user?.objectforkey("name") as? string     profilview.user = posts[sender.view!.tag].user } 

my problem want know uilabel pressed, knowing i'm using tag.

your gotoprofile: function should written properly. parameter isn't "sender", it's gesture recognizer.

func gotoprofil (gesturerecognizer: uitapgesturerecognizer) { } 

from there, can determine label using view property of gesture recognizer.

but seem have 2 conflicting requirements. want know of 2 labels tapped , want know row label in.

normally use label's tag know of 2 labels tapped. using tags track row.

the solution recommend use tag differentiate 2 labels. can calculate row based on frame of label.

see the following answer sample code translates frame of cell's subview cell's indexpath.


Comments