web-dev-qa-db-fra.com

UIButton setText par programmation

J'ai environ 10 boutons UIB sur le fichier xib et je veux définir le texte par programme

37
user401383

Vous voudrez peut-être être plus précis la prochaine fois que vous poserez une question.

Vous pouvez essayer d'attribuer une balise différente pour chaque bouton dans le générateur d'interface (ou la même balise si c'est ce dont vous avez besoin), puis utiliser le code suivant

for (int i = 1 ; i<=10;i++)
{
     UIButton *myButton = (UIButton *)[myView viewWithTag:i];
     [myButton setTitle:@"my text" forState:UIControlStateNormal];
}
60
Ron Srebro

Je pense que vous pouvez créer une collection de boutons à partir de votre mise en page:

Sélectionnez le premier bouton de votre xib et faites-le glisser avec le bouton droit dans votre code: Drag firs button

alors vous devez sélectionner "Outlet Collection" pour le type de connexion et attribuer un nom:

select Outlet collection

Ensuite, dans votre code, vous avez un tableau de boutons de votre fichier xib:

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;

Ensuite, sélectionnez et faites glisser les autres boutons sur la collection créée, faites-le un par un dans l'ordre que vous souhaitez répéter: Drag the other buttons

Vous pouvez vérifier l'ordre des boutons dans l'inspecteur de connexions en survolant le tableau que vous avez créé: check button order

Maintenant, définissez le texte de chaque bouton:

for (int i = 0; i<self.buttons.count; i++) {
    UIButton * button = self.buttons[i];
    [button setTitle: [NSString stringWithFormat:@"Button %d",i ] forState:UIControlStateNormal];
}

Notez que UIControlStateNormal est l'état par défaut et s'il n'est pas remplacé, il sera affiché pour tous les états:

En général, si une propriété n'est pas spécifiée pour un état, la valeur par défaut est d'utiliser la valeur UIControlStateNormal. Si la valeur de UIControlStateNormal n'est pas définie, la propriété prend par défaut une valeur système. Par conséquent, vous devez au minimum définir la valeur de l'état normal.

J'espère que ça aide

2
Jorge Arimany