J'ai environ 10 UIButtons dans un fichier xib et je veux définir le texte de manière programmatique.
C'est exactement ce que je recherche... une question : quelle est l'instance du fichier xib ?
J'ai environ 10 UIButtons dans un fichier xib et je veux définir le texte de manière programmatique.
Vous voudrez peut-être être plus précis la prochaine fois que vous poserez une question.
Vous pouvez essayer d'attribuer une étiquette différente à chaque bouton dans le constructeur d'interface (ou la même étiquette si c'est ce dont vous avez besoin) et ensuite utiliser le code suivant
for (int i = 1 ; i<=10;i++)
{
UIButton *myButton = (UIButton *)[myView viewWithTag:i];
[myButton setTitle:@"my text" forState:UIControlStateNormal];
}
C'est exactement ce que je recherche... une question : quelle est l'instance du fichier xib ?
Je suppose que votre NIB est pour un UIViewController, donc si ce code est à l'intérieur du code du UIViewController, myView devrait être view.
Je pense que vous pourriez 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 :
vous devez alors sélectionner "Outlet Collection" pour le type de connexion et attribuer un nom :
Ensuite, dans votre code, vous avez un tableau de boutons provenant 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 dans lequel vous voulez les itérer :
Vous pouvez vérifier l'ordre des boutons dans l'inspecteur de connexions en passant la souris sur le tableau que vous avez créé :
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 que s'il n'est pas surchargé, 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 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 devriez au moins définir la valeur de l'état normal.
J'espère que cela vous aidera.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.