UIButton在循环中创建了运行时,现在我需要一个特定的函数,具体取决于触摸的按钮

时间:2011-02-22 07:57:00

标签: uibutton

我正在创建一些按钮并将它们放在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 个答案:

答案 0 :(得分:1)

您需要使用uibutton控件的tag属性。它是按钮的数字ID。您可以根据循环中的i变量在按钮上设置标记,例如:

button.tag=i;

然后在按钮的操作消息中,您只需添加按钮的ID作为参数并检查其标记,如下所示:

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

希望这有帮助。