gpt4 book ai didi

iphone - 自定义 UIButton 无法与链接的 UIImageView 交互

转载 作者:行者123 更新时间:2023-12-03 20:01:02 26 4
gpt4 key购买 nike

我被下面的代码困住了。我的 UIButton 扩展类无法显示或隐藏 UIImageView 的一些原因

我的方法正在被调用,并且 imageview 不为零。

这是代码:

@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

最佳答案

正如 Thomas Müller 在评论中提到的那样,我也认为操作应该在 Controller 中。

除此之外,在您的代码中,您正在更改“imageView”对象的隐藏属性,而您在声明中创建的自定义 ImageView 是“linkImageView”。该代码不会引发错误,因为'imageView'是在 UIButton 中声明的按钮的只读属性,并且它代表按钮 ImageView 而不是您的 linkImageView

希望这有帮助。

谢谢,斯瓦普尼尔

关于iphone - 自定义 UIButton 无法与链接的 UIImageView 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3210649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com