Чтобы использовать accessoryView - вам нужно установить для accessoryType ячейки значение UITableViewCellAccessoryNone, поместить UIButton (со связанным изображением) в ячейку, а затем подключить его для получения пользовательских прикосновений.Вы можете использовать что-то вроде приведенного ниже кода в качестве ответа IBAction на прикосновение к UIB-кнопке ячейки:
- (IBAction) accessoryButtonPressed:(id) sender
{
NSUInteger pathInts[] = { 0,0 };
pathInts[1] = self.currentselectedrow; // ivar set when tableview row last selected
NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:pathInts length:2];
[self tableView:mytableview accessoryButtonTappedForRowWithIndexPath:indexPath];
}
UIButton будет подключен для выполнения этого связующего кода посредством строки внутри tableView "cellForRowAtIndexPath:"function
[thecell setButtonTarget:self action:@selector(accessoryButtonPressed:)];
Одна вещь, которую я заметил, заключается в том, что UIB-кнопка, кажется, хочет «провести пальцем вправо» по сравнению с простым «касанием» касания, чтобы вызвать событие - но проблема может быть в моей бета-версии iOS, которая является проблемой,Обратите внимание, что я добавил объект UIButton * с именем cell_accessoryButton к источнику пользовательской ячейки.
В источнике ячейки вы бы поддерживали вызов setButtonTarget с помощью кода, подобного следующему:
- (void) setButtonTarget:(MyViewController*)inTarget action:(SEL) inAction
{
[self.cell_accessoryButton addTarget: inTarget
action: (SEL) inAction
forControlEvents: UIControlEventTouchUpInside];
}
Гораздо проще просто использовать ссылку accessoryType и позволить iOS сделать тяжелую работу - но, если вам нужна пользовательская графика и т. Д., - это другой путь, который работает.