UIButton: управление динамическим созданием и сенсорными событиями - PullRequest
0 голосов
/ 22 июня 2010

В настоящее время я динамически создаю объекты UIButton в моем представлении.

У меня есть NSMutableArray, содержащий информацию о них (id - метка).

Затем я создаю свои объекты представления, выполняядля итерации на моем MutableArray.

Я пытаюсь использовать этот код на своих кнопках для перехвата событий касания:

[myButton addTarget:self action:@selector(selectedButton:) forControlEvents:UIControlEventTouchUpInside];

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

Я пытался сделать это:

-(void)selectedButton:(id)sender {...}

Но не знаю, что делать с объектом отправителя.

Заранее спасибо за помощь!

Ответы [ 3 ]

3 голосов
/ 22 июня 2010

В верхней части вашего файла .m поместите что-то вроде этого:

enum {
    kButtonOne,
    kButtonTwo  
};

Когда вы создаете свои кнопки, сделайте это

myButton.tag = kButtonOne;

Затем в выбранном вами методе кнопки сделайте следующее:

-(void)selectedButton:(id)sender {
  switch (sender.tag) {
    case kButtonOne:
      // do something here
      break;
    case kButtonTwo:
      // do something else here
      break;
  }
}
1 голос
/ 22 июня 2010

Установите mybutton.tag на что-то, а затем проверьте этот тег в selectedButton:sender.

0 голосов
/ 22 июня 2010
-(void)viewDidLoad{

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

button.frame = CGRectMake(80.0, 210.0, 40.0, 30.0);

button.tag=1;

[button addTarget:self 
           action:@selector(aMethod:)
 forControlEvents:UIControlEventTouchDown];

[button setTitle:@"raaz" forState:UIControlStateNormal];

[self.view addSubview:button];

}

-(IBAction)aMethod:(id)sender{

UIButton *btn=(UIButton *)sender;

NSLog(@"I have currently Pressed button=%d",btn.tag);


}
...