Подтвердить что ты не робот

UIButton setText программно

У меня около 10 UIButtons на xib файле и вы хотите программно настроить setText

4b9b3361

Ответ 1

В следующий раз, когда вы зададите вопрос, возможно, вам захочется быть более конкретным.

Вы можете попробовать назначить другой тег для каждой кнопки в построителе интерфейса (или тот же тег, если это вам нужно), а затем использовать следующий код

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

Ответ 2

Я думаю, вы могли бы создать набор кнопок из вашего макета:

Выберите первую кнопку из xib и перетащите ее правой кнопкой в ​​свой код: Drag firs button

тогда вы должны выбрать "Outlet Collection" для типа Connection и назначить имя:

select Outlet collection

Затем в вашем коде у вас есть набор кнопок из вашего xib файла:

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

Затем выберите и перетащите другие кнопки над созданной коллекцией, сделайте это один за другим в том порядке, в котором вы хотите их повторить: Перетащите другие кнопки

Вы можете проверить порядок кнопок в инспекторе соединений, зависающем над созданным массивом: check button order

Теперь задайте каждый текст кнопки:

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 не установлено, то по умолчанию значение по умолчанию соответствует системному значению. Поэтому, как минимум, вы должны установить значение для нормального состояния.

Я надеюсь, что это поможет