2012-02-29 2 views
1

J'ajoute un UIButton dans ma vue & Je veux que le bouton soit désélectionné lorsque l'utilisateur retire son doigt du bouton. Cela fonctionne bien quand je touche & déplacer le doigt vers le haut, mais pas sur le fond. Y at-il quelque chose qui manque dans mon code:Déplacer un doigt d'un UIButton ne désélectionnant pas le bouton

mon cadre Button est - {{7, 8}, {260, 40}}

self.myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
[self.myButton setTitleColor:[UIColor colorWithRed:150.0/255.0 green:150.0/255.0 blue:150.0/255.0 alpha:1.0] forState:UIControlStateHighlighted]; 
self.myButton.titleLabel.font = [UIFont boldSystemFontOfSize:kFontSize16]; 
self.myButton.layer.cornerRadius = 10; 
[self.myButton setFrame:CGRectMake(self.bounds.origin.x + 7, self.bounds.origin.y + 8, self.bounds.size.width - 10, 40)]; 
[self.myButton setBackgroundImage:[[UIImage imageNamed:@"Normal.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:0] forState:UIControlStateNormal]; 
[self.myButton setBackgroundImage:[[UIImage imageNamed:@"Pressed.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:0] forState:UIControlStateHighlighted]; 
[self.myButton addTarget:nil action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside]; 
[self addSubview:self.myButton]; 

Une autre chose est que je suis en œuvre des méthodes touchesBegan/touchesEnded sur ma classe UIView.

+0

Une chose notable est que lorsque je réduis la largeur de mon bouton à 30 px, j'ai obtenu les résultats souhaités. Mais le bouton semble très petit. Est-ce un comportement par défaut de UIKit et peut-il être outrepassé d'une manière ou d'une autre? – Abhinav

Répondre

0

Quelle est la taille de l'image que vous utilisez? Normal.png & Pressed.png size's? Sur la base de sa taille à jour votre cadre de bouton:

Supposons que si normal.png est de définir votre {40, 40} bouton largeur & hauteur

self.myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.myButton setFrame:CGRectMake(7, 8, 40, 40)]; 

maintenant exécuter l'application et vérifier.

+0

Cela ne fonctionne pas. Fonctionne sur simulateur mais pas sur l'appareil. – Abhinav

+0

Qu'avez-vous écrit dans les contacts a commencé? Si possible, envoyez-moi votre code, je le déboguerai. – Dee

Questions connexes