テーブルと indexPath を、クリックされたテーブルを含む accessoriesButtonTappedForRowWithIndexPath コールバックに渡すことを許可しながら、いくつかのテーブルのアクセサリ ビューで画像をカスタマイズしたいと思います。ここで報告された 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も無くなってしまいます。助けてください。