2011-12-23 8 views
9

He creado un conjunto de etiquetas programáticamente para mostrar en la pantalla y quiero después de hacer clic en la etiqueta que debe realizar alguna acción.Acción en UILabel en iphone

Por favor, no me sugiera acerca de UIButton. Quiero hacerlo por UILabel. Después de hacer clic en la etiqueta, debería aparecer otra vista detallada.

Ayúdeme a resolver este problema sin utilizar Inteface Builder.

+1

¿Qué pasa con UIButton? Creo que un botón UI transparente no tiene nada diferente con lo que quieres. – Skyler

Respuesta

22

Finalmente se me ocurrió con la solución y obtuve el resultado

[titleLbl setUserInteractionEnabled:YES]; 
    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelButton:)]; 
    [tapGestureRecognizer setNumberOfTapsRequired:1]; 
    [titleLbl addGestureRecognizer:tapGestureRecognizer]; 
    [tapGestureRecognizer release]; 
4

hacen IBoutlet de su etiqueta, implemento touchesBegin en su controlador, saque la CGPoint - touchCoordinate, comprobar

CGRectContainsPoint(label.frame,touchCoordinate) 
{ 
//you got the touch action on your label 
} 
+1

pls dime sin IB –

+1

establecer la etiqueta de su etiqueta al crearla: suponga que ha establecido la etiqueta: 199. luego, puede buscar la etiqueta siempre que lo requiera mediante UILabel * label = [self.view viewWithTag: 199]; – samfisher

+1

puede buscar el objeto de la etiqueta sin IBOutlet usando arriba. Espero que ayude .. – samfisher

3

En

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
....... 
....... 
CGPoint touch;//Touch Location 

if(CGRectContainsPoint([objectOfLable frame], [touch locationInView:self.view ])) 
{ 
    Do What you Want 
} 

} 

intenta esto

Cuestiones relacionadas