2010-07-01 4 views
2

J'ai créé différents boutons et les a initialisés avec un tableau avec des photos comme backgroundImage.Comment obtenir le nom de backgroundImage à partir d'un bouton?

UIButton* myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[myButton setBackgroundImage:[UIImage imageNamed: (NSString*) obj ] forState:UIControlStateNormal]; 
[myButton addTarget:nil action:@selector(buttonDown:) forControlEvents:UIControlEventTouchUpInside]; 

Here's mon buttonDown méthode:

-(void) buttonDown:(UIButton*) sender { 
NSLog(@"pressed: %@", sender.currentBackgroundImage );} 

Cela me retracée que: "pressé: < UIImage: 0x6625c40>"

Maintenant, je veux savoir comment puis-je obtenir que nom de l'image de tout bouton cliqué? Serait bon à savoir. Merci pour votre temps.

Répondre

5

Comme UIImage ne stocke pas le nom de l'image qu'il contient, vous ne pouvez pas. Vous devez stocker le nom ailleurs par vous-même en relation avec le bouton ou l'image.

concernant

+0

Merci, j'ai créé une sous-classe de UIButton et ajouté une nouvelle méthode pour cela. Merci pour cet indice .. – geforce

6

La façon dont je l'ai essayé d'obtenir l'arrière-plan de UIbuttonimageName est, régler le title de même que UIButton du nom d'image et définir la hidden property de button label-YES. (j'utilisais iCarousel)

button.titleLabel.text=[imageArray objectAtIndex:index]; 
button.titleLabel.hidden=YES; 
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 

et buttonTapped,

UIButton *button=(UIButton*)sender; 

NSLog(@"The button title is %@",sender.titleLabel.text); 
// UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Button Tapped Is" message:sender.titleLabel.text delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",nil]; 
//[alert show]; 

woking bien.

Questions connexes