2012-02-26 2 views
1

В моем приложении я создал пользовательскую ячейку представления таблицы с кнопкой внутри нее. Мне нужно делать определенные действия, когда каждая кнопка постукивает. На данный момент я могу добавлять действия к кнопкам, так что, когда я постучал, действия вызывают, но я не могу определить, какая кнопка отвечает за это действие. Как я могу выполнять разные операции на основе пользовательских событий на кнопках? Я мог бы сделать это обычным способом, установив свойство «tag» и проверив с помощьюОтдельные действия для каждого UIButton в пользовательском UITableViewCell

[sender tag] 

но не знаю в этом случае. Заранее спасибо.

+0

Ваша проблема в том, что вы не знаете, какая кнопка в ячейке была нажата, или что вы не знаете, в какую ячейку была кнопка? – jrturton

+0

@jrturton Я не знаю, какую кнопку получить, а так как кнопка лежала так, что она полностью закрывала ячейку таблицы, я не мог касаться ячейки – rakeshNS

ответ

0

Пример:

[button1 addTarget: target action: @selector(action1) forControlEvents: UITouchUpInside]; 
[button2 addTarget: target action: @selector(action2) forControlEvents: UITouchUpInside]; 
[button3 addTarget: target action: @selector(action3) forControlEvents: UITouchUpInside]; 
0

Сделать цикл и назначить каждую кнопку инкрементного тег (в зависимости от количества строк возможно), а также в качестве единого метода в элементе управления, который является целью (все кнопки получают тот же селектор).

В вызываемом методе извлеките номер тега и выполните необходимые действия на нем.

0

Возможно, вы добавили кнопки в ячейки в cellForRowAtIndexPath.

Если ваш стол имеет только одну секцию, то это легко. Просто измените cellForRowAtIndexPath.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // .. create cell 

    // .. add button 

    myButton.tag = indexPath.row; 
    [myButton addTarget: target action: @selector(buttonClicked:) forControlEvents: UITouchUpInside]; 

    return cell; 
} 

-(void) buttonClicked:(id)sender { 

    NSLog (@"user clicked button in row %d", [(UIButton *)sender tag]); 

    // ..do your stuff here 
}