在 AccessoryView 中设置带有图像的按钮

Setting a Button with an image in the AccessoryView

我想在某些 table 的附件视图中自定义图像,同时允许将 table 和 indexPath 传递给 accessoryButtonTappedForRowWithIndexPath 回调,包括单击的 table。我以前用的UIControl+Blocks.hclass这里报:

 @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) accessory button,但是这样我也失去了accessibilityLabel。请帮忙。

我通过预见 table 重新加载来恢复旧的解决方案,以防按钮变得疯狂并开始将它们自己作为控制事件发送。