Как динамически создавать несколько кнопок и обрабатывать их отдельные события? + iPhone SDK - PullRequest
2 голосов
/ 20 марта 2009

Сейчас я создаю приложение для iPhone. Мне нужно динамически создавать несколько кнопок и обрабатывать их соответствующие события отдельно. Могут ли события каждой кнопки вести себя отдельно, или я могу отправить переменную или объект методу и в зависимости от этого значения дифференцировать поведение кнопки. Кто-нибудь может указать мне, как это сделать?

Пожалуйста, помогите,

Syam

Ответы [ 3 ]

7 голосов
/ 20 марта 2009

Вам следует ознакомиться с образцом каталога пользовательского интерфейса в iPhone SDK. В нем есть примеры программного создания всех элементов пользовательского интерфейса.

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

Чтобы вручную создать кнопку и настроить ее действие, вы должны сделать что-то вроде:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(80.0, 170, 150.0, 30.0);
[button setTitle:@"My Button" forState:UIControlStateNormal];
[button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
5 голосов
/ 21 марта 2009

Когда кнопка вызывает IBAction (это будет селектор, который вы передаете), она также передает указатель на кнопку, которая указана в аргументе: (id) отправителя, который вы обычно имеете:

- (IBAction) doSoemthing:(id)sender

Таким образом, вы можете просто определить, исходя из переданной кнопки, что вы хотите сделать. Либо создавая карту на основе всех адресов кнопок, либо используя все используемые вами кнопки UIB, быть подклассами UIButton, где вы вставляете какой-то пользовательский идентификатор и просматриваете его при нажатии doSomething:

2 голосов
/ 24 сентября 2012

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

Вот пример: Определение, какая кнопка UIB была нажата в UITableView

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