Cómo crear UILabel con la primera palabra que se puede hacer clic

Quiero crear una label en iOS, ¿alguien puede ayudarme a hacer que la primera palabra del text de la label sea en negrita y se pueda hacer clic? La label muestra el nombre de usuario y su comentario y la primera palabra es siempre el nombre de usuario. ¡Gracias por adelantado!

Supongo que una solución más elegante usará TTTAttributedString o similar.

Ejemplo:

demo simple

Salida:

 2013-03-10 07:16:54.429 ClickableUILabel-SO[4770:c07] UserName clicked Address: { comment = "Your comment."; userName = user2126537; } 2013-03-10 07:16:55.460 ClickableUILabel-SO[4770:c07] UserName clicked Address: { comment = "Another comment."; userName = nsgulliver; } 

Punto key:

 ... NSRange userNameRange = [text rangeOfString: userName]; ... label.delegate = self; [label addLinkToAddress: @{ @"userName" : userName, @"comment" : comment } withRange: userNameRange]; ... - (void) attributedLabel: (TTTAttributedLabel *)label didSelectLinkWithAddress: (NSDictionary *)addressComponents { NSLog(@"UserName clicked\nAddress:\t%@", addressComponents); } 

Código fuente completo

Tenga en count que debe abrir xcworkspace en Xcode / AppCode porque estoy usando CocoaPods aquí.

Espero eso ayude.

BR.
Eugene

debe usar UITapGestureRecognizer para hacer que UILabel seleccionable. Use UIView y agregue UILabel como usbview a ese

 UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourMethod:)]; [yourLabelView setUserInteractionEnabled:YES]; [yourLabelView addGestureRecognizer:gesture]; 

Una forma de hacer que la primera palabra se pueda hacer clickable es sacar la primera palabra de la label usando el método de cadena y almacenarlo en otra label y usar el código anterior para hacer que se pueda hacer clic

 NSArray* wordArray = [yourLabel.text componentsSeparatedByString: @" "]; NSString* firstWord = [wordArray objectAtIndex: 0]; 
  • Haga un button personalizado, que contendrá la primera palabra de su nombre de usuario, escriba el text en negrita.
  • Tome una label, solo junto al button personalizado y escriba el rest de su nombre de usuario que no sea la primera palabra.
  • En el evento de clic del button personalizado, haz lo que quieras hacer …

Espero que esto sea claro para ti.

¡Disfruta de la progtwigción!

Las tags parecen ser difíciles. Ypu puede usar una vista. agregue un button y póngalo en ese lado al lado y agregue el primer carácter al button y otros para labelr.

Necesita agregar un UIGestureRecognizer a su UILabel

 [myLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabelActionPerformed)]]; 

// entonces puedes tener tu método

 -(void)myLabelActionPerformed { NSLog(@"I tapped a UILabel"); } 

Recuerde hacer que su intercalación de usuario UILabel esté habilitada.