Je suis bloqué sur le code suivant. Comment ma classe UIButton Extended ne peut pas afficher ou masquer un UIImageViewUIButton personnalisé ne peut pas interagir avec UIImageView lié
Mes méthodes sont appelées et l'imageview n'est pas nulle.
Voici le code:
@interface UILinkedImageButton : UIButton {
IBOutlet UIImageView *linkImageView;
}
@property (nonatomic, retain) IBOutlet UIImageView *linkImageView;
@end
#import "UILinkedImageButton.h"
@interface UILinkedImageButton()
- (void)showImage;
- (void)hideImage;
@end
-------------------------------------------------------------------------------------------------
@implementation UILinkedImageButton
@synthesize linkImageView;
- (void) dealloc{
[linkImageView release], linkImageView = nil;
[super dealloc];
}
- (id) initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self){
[self addTarget:self action:@selector(showImage) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(hideImage) forControlEvents:UIControlEventTouchUpInside];
[self addTarget:self action:@selector(hideImage) forControlEvents:UIControlEventTouchUpOutside];
}
return self;
}
- (void)showImage
{
if(self.imageView){
NSLog(@"UILinkImageButton - showImage - currentStatus: %@", self.imageView);
self.imageView.hidden = NO;
[self.superview layoutIfNeeded];
}
}
- (void)hideImage
{
if(self.imageView){
NSLog(@"UILinkImageButton - hideImage");
self.imageView.hidden = YES;
}
}
@end
Normalement, j'attendre de ces actions à vivre dans le contrôleur, pas le bouton. Ensuite, vous devez définir les actions du bouton soit dans Interface Builder ou dans votre contrôleur de vue (probablement dans -loadView); –
Eh bien, les fonctions sont appelées, je peux les voir dans le journal. Mais tous les changements à l'imageview liée n'apparaîtront pas. – rckoenes
Votre hiérarchie UIImageView est-elle visible dans la vue? Peut-être avez-vous oublié de le lier avec IB ou ce n'est pas une sous-vue de la vue des parents? (de cette façon, l'objet sera alloué, mais pas de vue visible, bien sûr) – kpower