Кнопка внутри UITableViewCell - как узнать, в какой ячейке он находится? - PullRequest
1 голос
/ 22 марта 2012

У меня есть кнопка внутри каждой ячейки моего UITableView, но когда кнопка сработает, я хочу выяснить, в какой ячейке она находится.Я мог бы использовать тег или создать подкласс для кнопки и добавить к ней indexPath, но тогда возникает проблема, когда я удаляю или добавляю ячейки, и мне приходится следить за обновлением всех этих кнопок.Есть ли другой способ, которым люди могут думать о том, чтобы делать это хорошо?

Ответы [ 3 ]

2 голосов
/ 22 марта 2012
UITableViewCell * cell = (UITableViewCell*) button.superview;
NSIndexPath * indexpath = [myTableView indexPathForCell:cell]
2 голосов
/ 22 марта 2012

попробуйте это

- (void) buttonAction:(id)sender{
     UIButton *buttonInCell = (UIButton *)sender;
     NSIndexPath *indexPathOfCell = [self.yourTable indexPathForCell:
                              (UITableViewCell *)[[buttonInCell superview] superview]];
}  

, где buttonInCell содержит кнопку-отправитель, а indexPathOfCell содержит значение indexPath ячейки, в которой есть кнопка Particular, с которой было инициировано действие

вышеуказанный способ может не работать с iOS 7

обновление

- (void)buttonAction:(id)sender {
    UIButton *buttonInCell = (UIButton *)sender;
    CGPoint center= buttonInCell.center;
    CGPoint rootViewPoint = [buttonInCell.superview convertPoint:center toView:self.yourTableView];
    NSIndexPath *indexPath = [self.yourTableView indexPathForRowAtPoint:rootViewPoint];
    NSLog(@"%@",indexPath); 
}
2 голосов
/ 22 марта 2012

Используйте метод UITableView indexPathForCell:.Он берет ячейку и дает индексный путь для ячейки.

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