2015-08-03 6 views
0

Je voudrais personnaliser l'image dans les vues accessoires de certaines tables tout en permettant de passer la table et indexPath au rappel accessoryButtonTappedForRowWithIndexPath y compris la table cliquée. Je l'habitude d'employer la classe UIControl + Blocks.h rapporté ici:Définition d'un bouton avec une image dans AccessoryView

@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 

Mais il a commencé à se comporter bizarrement par parfois revenir sur le bouton dans le lieu de l'événement pour écraser mon application lorsque je tente d'obtenir allTouches et je suis fervemment à la recherche d'un remplacement.

J'ai également essayé de remplacer le bouton d'accessoire (i) d'origine, mais de cette façon, je perds aussi l'étiquette d'accessibilité. S'il vous plaît aider.

Répondre

0

J'ai restauré l'ancienne solution en prévoyant un rechargement de la table dans le cas où les boutons deviendraient fous et commenceraient à se transmettre comme l'événement de contrôle.