2014-09-10 3 views
0

J'utilise donc core-plot et je dois redéfinir une méthode dans CPTLayer pour CPTAxisLabel, mais pas pour toutes les étiquettes, donc j'ai créé une classe CustomCPTAxisLabel pour le faire. Le problème est que je dois redéfinir renderAsVectorInContext qui est une méthode de CPTLayer, CPTAxisLabel hérite de CPTLayer et CustomCPTAxisLabel hérite de CPTAxisLabel (quelque chose comme ceci: CPTLayer-> CPTAxisLabel-> CustomCPTAxisLabel). La question est comment puis-je remplacer une méthode de CPTLayer dans CustomCPTAxisLabel?comment remplacer une méthode d'une classe héritée

Répondre

0

dans votre sous-classe CustomCPTAxisLabel, définir la méthode, que vous souhaitez remplacer renderAsVectorInContext. Quelque chose comme

- (void) renderAsVectorInContext: (CGContextRef) contexte {

[super renderAsVectorInContext:context]; 

// Do customisation after this. 

}

Vous pouvez ou ne pouvez pas choisir de remplacer cette méthode dans CPTAxisLabel classe, mais si vous faites un appel à super classe.

+0

J'ai tout essayé, mais la méthode n'est tout simplement pas appelée, et je ne peux pas comprendre pourquoi ... – edo

+0

Pouvez-vous poster du code à partir de la classe _CustomCPTAxisLabel_. Aussi le code d'où vous allouez l'objet pour cela. – Gandalf

+0

dans .h J'ai #import "CPTAxisLabel.h" Interface CustomCPTAxisLabel: CPTAxisLabel - (void) renderAsVectorInContext: (CGContextRef) contexte; fin et .m @implementation CustomCPTAxisLabel - (void) renderAsVectorInContext: contexte (CGContextRef) { [super renderAsVectorInContext: contexte]; } – edo

Questions connexes