Могу ли я иметь одну кнопку с двумя действиями в одном цикле for? - PullRequest
0 голосов
/ 05 июня 2011

Есть ли причина, по которой я не должен этого делать?Я довольно новичок в программировании iPhone, так что я просто хочу убедиться, что это не делает мой объем памяти по какой-то причине очень высоким или чем-то в этом роде.

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

Спасибо за совет!

UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:l];
CGRect buttonRect = CGRectMake(11+charact*20, -40 + line*50, 18, 21);
aButton.frame = buttonRect;

[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aButton addTarget:self action:@selector(thisButton:) forControlEvents:UIControlEventTouchUpInside];

[aButton setTitle:@" " forState:UIControlStateNormal];
[gameScroll addSubview:aButton];

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Вы регистрируете 2 разных селектора для одного и того же типа событий.Что произойдет - второй заменит первый.Какой в ​​этом смысл?Возможно, в вашем примере кода есть опечатка, но в любом случае вы можете зарегистрировать разные селекторы для разных событий.И если вы создаете свои кнопки в цикле, это не проблема, так как каждый раз он будет регистрировать разные объекты для этой цели.Ваша функция будет выглядеть примерно так:

- (void) buttonClicked:(id) sender
{
   // your code
}

, где sender - это объект, который отправляет селектор к цели.В этом случае ваша кнопка.

Что касается их одновременной работы ... Они работают в разных потоках?Обычно GUI запускается только в основном потоке, поэтому это не произойдет одновременно, если это вызывает озабоченность.

Надеюсь, что он отвечает на ваш вопрос

0 голосов
/ 05 июня 2011

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

Для одного и того же управляющего события будут вызваны эти различные действия. Собираетесь ли вы выполнить одно и то же задание в этих разных действиях?

Если вы хотите выполнить другую задачу в этих разных действиях, разве вы не можете сделать то же самое, используя какое-то условие только для одного и того же действия?

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