UIButton устанавливает текст программно - PullRequest
37 голосов
/ 28 июля 2010

У меня есть около 10 UIB-кнопок в xib-файле и я хочу установить текст программно

Ответы [ 2 ]

60 голосов
/ 28 июля 2010

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

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

for (int i = 1 ; i<=10;i++)
{
     UIButton *myButton = (UIButton *)[myView viewWithTag:i];
     [myButton setTitle:@"my text" forState:UIControlStateNormal];
}
2 голосов
/ 30 сентября 2015

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

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

, затем вы должны выбрать «Outlet Collection» для Типа соединения и назначить имя:

select Outlet collection

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

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

Затем выберите и перетащите другие кнопки над созданной коллекцией, сделайте это одну за другой в том порядке, в котором вы хотите их итерировать: Drag the other 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 не задано, для свойства по умолчанию используется системное значение.Поэтому, как минимум, вы должны установить значение для нормального состояния.

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

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