在 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 重新加载来恢复旧的解决方案,以防按钮变得疯狂并开始将它们自己作为控制事件发送。
我想在某些 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 重新加载来恢复旧的解决方案,以防按钮变得疯狂并开始将它们自己作为控制事件发送。