Установка кнопки с изображением в AccessoryView

Я хотел бы настроить изображение в дополнительных представлениях некоторых таблиц, позволяя передавать таблицу и indexPath в обратный вызов accessoryButtonTappedForRowWithIndexPath, включая таблицу, по которой щелкают. Я использовал класс UIControl+Blocks.h, о котором здесь сообщалось:

 @implementation UIControl (Blocks)
 - (void)addEventHandler:(ActionBlock)handler forControlEvents:  (UIControlEvents)controlEvents
{
    objc_setAssociatedObject(self, &UIButtonHandlerKey, handler, OBJC_ASSOCIATION_COPY_NONATOMIC);
   [self addTarget:self action:@selector(callActionHandler:event:)   forControlEvents:controlEvents];
}
- (void)callActionHandler:(id)sender event:(id)event
{
   ActionBlock handler = (ActionBlock)objc_getAssociatedObject(self, &UIButtonHandlerKey);
   if (handler) {
       handler(sender, event);
   }
}
@end

Но он начал вести себя странно, иногда возвращая кнопку вместо события, что приводило к краху моего приложения, когда я пытался получить allTouches, и поэтому я горячо искал замену.

Я также попытался заменить оригинальную (i) вспомогательную кнопку, но таким образом я также потерял accessibilityLabel. Пожалуйста помоги.

1 ответ

Решение

Я восстановил старое решение, предвидя перезагрузку таблицы на случай, если кнопки сойдут с ума и начнут посылать себя как управляющее событие.

Другие вопросы по тегам