我想在某些表的附件视图中自定义图像,同时允许将表和 indexPath 传递给包括单击的表在内的附件ButtonTappedForRowWithIndexPath 回调。我曾经在这里使用 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) 附件按钮,但这样我也失去了可访问性标签。请帮忙。