UISegmentedControl текст программно - PullRequest
61 голосов
/ 22 марта 2012

Я создал UISegmentedControl с двумя сегментами, используя конструктор интерфейса (из раскадровки), но я хотел бы установить текст двух сегментов программно.Я хочу сделать это, потому что я использую NSLocalizedString для всех своих кнопок, меток, заголовков и т. Д. Я создаю все эти вещи в конструкторе интерфейса, а затем добавляю текст программно.Мне удалось заставить каждый элемент работать таким образом, но я не могу найти способ добавить текст в свой UISegmentedControl.

Есть ли способ сделать это?Я пытаюсь использовать следующее, но поскольку сегментированный элемент управления уже создан в конструкторе интерфейсов, он не работает.

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

Большое спасибо

Ответы [ 4 ]

185 голосов
/ 22 марта 2012
[segmentedControl setTitle:<YourLocalizedString> forSegmentAtIndex:0];
9 голосов
/ 03 августа 2017

Правильный ответ для людей, использующих SWIFT 4 , будет

segmentedControl.setTitle("Your Title", forSegmentAt: 0)
9 голосов
/ 22 марта 2012

Используйте setTitle: forSegmentAtIndex: , чтобы назначить заголовок вашим сегментам сегментированного элемента управления.

Надеюсь, это поможет вам.

0 голосов
/ 09 мая 2019

Обновлено:

Используйте приведенный ниже простой код для программной установки заголовка UISegmentControl;

//.h файл:

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

// .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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...