web-dev-qa-db-fra.com

Texte UISegmentedControl par programmation

J'ai créé un UISegmentedControl avec deux segments en utilisant le générateur d'interface (à partir du storyboard), mais je voudrais définir le texte des deux segments par programme. Je veux le faire parce que j'utilise NSLocalizedString pour tous mes boutons, étiquettes, titres, etc. Je crée tous les trucs dans le générateur d'interface, puis j'ajoute du texte par programme. J'ai réussi à faire fonctionner chaque élément de cette façon, mais je ne trouve pas de moyen d'ajouter du texte à mon UISegmentedControl.

Y'a-t'il un quelconque moyen d'y arriver? J'essaie d'utiliser les éléments suivants, mais comme le contrôle segmenté est déjà créé dans le générateur d'interface, il ne fonctionne pas.

[segmentedControl initWithItems:[NSArray arrayWithObjects:NSLocalizedString(@"Title 1", @"Title 1"),NSLocalizedString(@"Title 2", @"Title 2"), nil]];

Merci beaucoup

62
user1015777
[segmentedControl setTitle:<YourLocalizedString> forSegmentAtIndex:0];
186
shabbirv

Utilisez setTitle: forSegmentAtIndex: pour attribuer le titre à vos segments du contrôle segmenté.

J'espère que cela vous aidera.

9
Obliquely

La bonne réponse pour les personnes utilisant Swift 4 serait

segmentedControl.setTitle("Your Title", forSegmentAt: 0)
9
Kevin Singh

Utilisez le code simple ci-dessous pour définir le titre UISegmentedControl par programme;

//. h fichier:

@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentControl;

 // Fichier .m: 

- (void)viewDidLoad { [super viewDidLoad]; [self.segmentControl setTitle:@"Love It" forSegmentAtIndex:0]; [self.segmentControl setTitle:@"Hate It" forSegmentAtIndex:1]; [self.segmentControl setTitle:@"Ehh" forSegmentAtIndex:2]; }

0
Kiran jadhav