определить кнопки выбора каждой строки в табличном представлении? - PullRequest
0 голосов
/ 07 декабря 2009
  • (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(230.0f, 4.0f, 60.0f, 36.0f);
    [btn setTitle:@"OK" forState:UIControlStateNormal];
    [btn setTitle:@"OK" forState:UIControlStateSelected];
    [btn addTarget:self action:@selector(onClickRename:) forControlEvents:UIControlEventTouchUpInside];
    [cell addSubview:btn];
    
    return cell;
    

    }

но если пользователь выбирает кнопку в определенной строке, я могу изменить это изображение с помощью onClickRename ... но могу ли я узнать, какое изображение строки было затронуто с помощью

  • (void) tableView: (UITableView ) tableView didSelectRowAtIndexPath: (NSIndexPath ) indexPath?

Ответы [ 3 ]

2 голосов
/ 07 декабря 2009

вы могли бы сделать что-то вроде

[btn setTag:[indexPath] row]

в настройках вашей ячейки, а затем

- (void) onClickRename:(id)sender {
    int row = sender.tag;
} 

вы бы знали, какая строка таблицы была поражена.

0 голосов
/ 07 июня 2019

В Swift вы можете установить тег для каждой кнопки

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

для установки тега в cellForAtIndexPath

cell.button.tag = indexPath.row


in button Action

@IBAction func anAction(_sender : AnyObject){

 let tappedButton = sender.tag // gives the row and button

}
0 голосов
/ 09 мая 2010

Apple использует следующую технику в своем аксессуаре образец кода:

- (void)checkButtonTapped:(id)sender event:(id)event
{
    NSSet *touches = [event allTouches];
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition];
    if (indexPath != nil)
    {
        // do what you want with the item at indexPath
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...