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

时间:2015-08-03 15:33:32

标签: uitableview uiaccessoryview

我想在一些表的附件视图中自定义图像,同时允许将表和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 个答案:

答案 0 :(得分:0)

我通过预测表重新加载来恢复旧解决方案,如果按钮变得疯狂并开始将自己作为控制事件发送。