2012-01-05 5 views
0

Есть ли способ, которым я могу получить, какую кнопку я нажал?В любом случае, я могу получить, какую кнопку я нажал?

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

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

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

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

+0

вы объяснили свой вопрос в хорошем смысле ... Но это всегда лучше, если добавить немного кода сегмента соответствующего раздела так что люди здесь могут легко понять, где вы застреваете. – Krishnabhadra

ответ

1

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

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

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

Привет, спасибо за ваш ответ (: Однако мое приложение выходит из строя, когда оно достигает нажатия кнопки нажатия кнопки. – Grace

+0

положить точку останова в buttonClicked функции и посмотреть, будет ли она выполнена. – Krishnabhadra

+0

Это была небольшая ошибка опечатки, которую я сделал. Спасибо большое за вашу помощь (: – Grace

0

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

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

OP объясняет в вопросе, что он/она создает кнопки программно в цикле for.There нет интерфейса Builder или IBACtion там – Krishnabhadra

+1

IBAction действительно просто недействителен в любом случае. Это всего лишь намек на IB. Метод, который я опубликовал, будет одинаковым для программно созданных кнопок, как и для кнопок, созданных в Interface Builder. Соответствующей частью ответа является аргумент 'sender'. –

Смежные вопросы