Отправить событие касания UIButton в didSelectRowAtIndexPath - PullRequest
1 голос
/ 18 августа 2011

У меня есть UIButton, добавленный к UITableViewCell

. Чтобы уменьшить избыточность кода, я бы хотел коснуться события UIButton, чтобы оно прошло через ячейку, поэтому оно заканчивается:

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

Можете ли вы сказать мне, как?

Ответы [ 2 ]

8 голосов
/ 18 августа 2011

В методе действия вашей кнопки вы можете определить путь индекса строки из табличного представления и передать его в метод делегата:

- (IBAction)buttonClicked:(UIButton *)button
{
    CGPoint point = [button center];
    UITableView *table = [self tableView];
    NSIndexPath *indexPath = [table indexPathForRowAtPoint:point];
    [[table delegate] tableView:table didSelectRowAtIndexPath:indexPath];
}
4 голосов
/ 18 августа 2011

Это плохая идея.Вместо этого вы должны вызвать ту же функцию из didSelectRowAtIndexPath: и метод действия кнопки и поместить свой общий код в эту функцию.Что-то вроде -

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//fetch the cell corresponding to this index path
MyCustomCell* cell = (MyCustomCell*)[self cellForRowAtIndexPath:indexPath] ;
[cell foo] ; 


}

-(void) buttonClicked:(id)sender //In your custom cell class
{
    [self foo];
}

HTH,

Акшай

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...