Вызов экземпляра класса по его тегу - PullRequest
0 голосов
/ 12 июля 2010

У меня есть несколько экземпляров класса Foo из UIControl, один экземпляр которого соответствует каждой ячейке в UITableView. Каждый элемент foo переключает изображение на левой стороне ячейки с помощью селектора при касании изображения (галочка, без галочки). Я также назначил каждому экземпляру тег:

foo.tag = indexPath.row;

В центре ячейки есть имя человека, поэтому, если коснуться изображения в ряду, этот человек «выбран». На правой стороне ячейки есть кнопка раскрытия информации о человеке.

Все вышеперечисленное прекрасно работает.

Центральная часть ячейки сейчас ничего не делает, но я бы хотел, чтобы она делала то же самое, как если бы изображение в ряду было затронуто. Оказывается, не всегда очевидно, что к образу нужно прикоснуться, чтобы выбрать человека.

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

Имеет ли это смысл делать, и если да, то как бы я это сделал?

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 июля 2010

Установите тег одинаковым в каждой ячейке.

foo.tag = kFooTag;

В didSelectRow получите ячейку, а затем получите foo из ячейки.

-(void) tableView:(UITableView *)table didSelectRowAtIndexPath:(NSIndexPath *)path {
  UITableViewCell *cell = [table cellForRowAtIndexPath:path];
  UIView *foo = [cell viewWithTag:kFooTag];
  // do something with foo
}

Если вы добавили fooв cell.contentView, затем вызовите viewWithTag для этого.

0 голосов
/ 12 июля 2010

Источник данных для табличного представления должен содержать все фактические экземпляры - почему бы просто не получить экземпляр с использованием индекса и источника данных?

...