UIButton создал время выполнения в цикле, теперь мне нужна определенная функция в зависимости от нажатой кнопки - PullRequest
0 голосов
/ 22 февраля 2011

Я создаю несколько кнопок и помещаю их в UIScrollView следующим образом:

int i = 0;
    while (i != numberOfButtons ) {
         int updatetY = 160*i;
        CGRect buttonFrame = CGRectMake(updatetY, 0, 160, 60);
        UIButton *button = [[UIButton alloc] initWithFrame:buttonFrame];
        UIImage *buttonImage = [UIImage imageNamed:@"bg.png"];
        [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
        [button setTitle:[buttonsArray objectAtIndex:i] forState:UIControlStateNormal];

        [button addTarget:self action:@selector(MYPROBLEM) forControlEvents:UIControlEventTouchUpInside];
        [menuScrollView addSubview:button];


        i++;

    }

Теперь мне нужно создать метод, чтобы фиксировать, к какой кнопке нажимают, и запустить определенный набор кода (см.(MYPROBLEM).

Кто-нибудь знает, что я могу сделать, чтобы «отследить», какая кнопка была нажата, а затем запустить определенную функцию?

что-то вроде:

- (void) buttonfunction

{

  case ...

      doThis


  case...

      doThat

}

заранее спасибо.

1 Ответ

1 голос
/ 05 мая 2011

Вам необходимо использовать свойство tag элемента управления uibutton.Это числовой идентификатор кнопки.Вы можете установить тег для кнопки на основе переменной i в вашем цикле, например:

button.tag=i;

Затем в сообщении о действии вашей кнопки вы просто добавите идентификатор кнопки в качестве параметра и проверьтеего тег выглядит так:

-(void) buttonFunction:(id)sender {
  switch (sender.tag)
  {
    //code goes here
  }
}

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

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