У меня около 10 UIButtons на xib файле и вы хотите программно настроить setText
UIButton setText программно
Ответ 1
В следующий раз, когда вы зададите вопрос, возможно, вам захочется быть более конкретным.
Вы можете попробовать назначить другой тег для каждой кнопки в построителе интерфейса (или тот же тег, если это вам нужно), а затем использовать следующий код
for (int i = 1 ; i<=10;i++)
{
UIButton *myButton = (UIButton *)[myView viewWithTag:i];
[myButton setTitle:@"my text" forState:UIControlStateNormal];
}
Ответ 2
Я думаю, вы могли бы создать набор кнопок из вашего макета:
Выберите первую кнопку из xib и перетащите ее правой кнопкой в свой код:
тогда вы должны выбрать "Outlet Collection" для типа Connection и назначить имя:
Затем в вашем коде у вас есть набор кнопок из вашего xib файла:
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
Затем выберите и перетащите другие кнопки над созданной коллекцией, сделайте это один за другим в том порядке, в котором вы хотите их повторить:
Вы можете проверить порядок кнопок в инспекторе соединений, зависающем над созданным массивом:
Теперь задайте каждый текст кнопки:
for (int i = 0; i<self.buttons.count; i++) {
UIButton * button = self.buttons[i];
[button setTitle: [NSString stringWithFormat:@"Button %d",i ] forState:UIControlStateNormal];
}
Обратите внимание, что UIControlStateNormal является состоянием по умолчанию, и если оно не переопределено, оно будет отображаться для всех состояний:
В общем случае, если свойство не указано для состояния, по умолчанию используется значение UIControlStateNormal. Если значение для UIControlStateNormal не установлено, то по умолчанию значение по умолчанию соответствует системному значению. Поэтому, как минимум, вы должны установить значение для нормального состояния.
Я надеюсь, что это поможет