Каким образом я могу заполучить, какую кнопку я нажал? - PullRequest
0 голосов
/ 05 января 2012

Можно ли как-нибудь заполучить, какую кнопку я нажал?

Кнопки создаются программно с использованием цикла for.

У меня есть просмотр изображений с помощью прокрутки (я использовал кнопки для изображений), где изображения взяты пользователем с камеры. Таким образом, после того, как пользователь делает снимок, «новое» изображение появится в просмотре прокрутки со «старыми» изображениями. Изображения уменьшаются до меньших размеров, поэтому я хочу, чтобы при нажатии кнопки (любого изображения) изображение отображалось в другом виде в реальном размере.

Кнопка изображений создается с помощью цикла for. Однако я не знаю, как заполучить какую кнопку нажимает пользователь. На данный момент, когда я нажимаю кнопку (независимо от того, какое изображение / кнопка), всегда будет отображаться последнее сделанное изображение.

Спасибо за ваше время.

Ответы [ 2 ]

1 голос
/ 05 января 2012

Вы можете использовать свойство тега кнопки.

Когда вы создаете кнопку, прикрепите тег к кнопкам каждого изображения.

for(int i = 0 ; i < your_no_images ; i++){
  UIButton *button = [UIButton <yourbuttontype>];
 -----
  button.tag   = i;
  [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
  [yourView addSubView:button];
}

Теперь в действии нажатия кнопки ..

-(void)buttonClicked:(UIButton*)sender{
   //if you has an array of UIImage's
   UIImage *clickedImage = (UIImage *)[yourImageArray objectAtIndex:sender.tag];
}
0 голосов
/ 05 января 2012

Методы IBAction, такие как те, которые запускаются при нажатии кнопки, включают аргумент sender. sender - это объект, который вызвал действие, например, кнопка, по которой был нажат. Как это:

- (IBAction)buttonWasClicked:(id)sender
{
    NSLog(@"The %@ button was clicked", (UIButton *)sender.currentTitle);
}
...