Событие UIButton для удаления строки в UITableView - PullRequest
1 голос
/ 04 октября 2010

Я добавляю кнопку в ячейку UITableView.Мой код

UIButton *btnView = [[UIButton buttonWithType:UIButtonTypeContactAdd] retain];
    btnView.frame = CGRectMake(280.0, 8.0, 25.0, 25.0);

    //[btnView setImage:[UIImage imageNamed:@"invite.png"] forState:UIControlStateNormal];
    [btnView addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:btnView];
    [btnView release];

Мое действие кнопки

- (void)action:(id)sender
{

}

Я хочу знать, как получить индекс строки текущей таблицы при нажатии.Я хочу удалить строку таблицы при нажатии на кнопку.

Правка :: Я нашел способ удаления с анимацией

[listOfItems removeObjectAtIndex:indexPath.row];

[self.tableview deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationRight];

Ответы [ 3 ]

3 голосов
/ 04 октября 2010

Я считаю, что один из подходов - сохранить номер строки в теге кнопки

btnView.tag = [indexPath row]

в действии

- (void)action:(id)sender
{
    UIButton * btn = (UIButton)sender;
    int row = btn.tag;
}
0 голосов
/ 23 апреля 2014

http://nshipster.com/associated-objects/ Использовать связанный объект NSNumber, окружающий строку, или сам путь индекса в качестве связанного объекта

//when you create the button
objc_setAssociatedObject(button, associationKeyForButton, [NSNumber numberWithInteger:indexPath.row], OBJC_ASSOCIATION_RETAIN_NONATOMIC);


//in the touch up inside handler to get the row back.
NSNumber* rowNumber = objc_getAssociatedObject(sender, associationKeyForButton);
0 голосов
/ 04 октября 2010

Я обычно использую этот метод:

- (IBAction)buttonAction:(id)sender {
    UIButton *button = sender;
    UIView *contentView = [button superview];
    UITableViewCell *cell = (UITableViewCell *)[contentView superview];
    NSIndexPath *indexPath = [tableView indexPathForCell:cell];

    //Do something
}

В зависимости от компоновки вашего UITableViewCell, возможно, вам придется проходить глубже в ваши представления TableViewCell.

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