gpt4 book ai didi

ios - 点击检测不适用于 UIImageView

转载 作者:行者123 更新时间:2023-11-28 22:06:42 26 4
gpt4 key购买 nike

在我的 .m 文件中,我添加了:

@property (strong, nonatomic) UIImageView *star1;

然后在我做的一个方法中:

UIImage *star1Image;
star1Image = [UIImage imageNamed:@"staryes"];
self.star1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 32, 32)];
self.star1.tag = 800;
[self.star1 setImage:star1Image];
[ratingLabelBody addSubview:self.star1];

在与此无关的几行之后,我有:

[self.star1 setUserInteractionEnabled:YES];
UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgTouchUp:)];
tapped.numberOfTapsRequired = 1;
[self.star1 addGestureRecognizer:tapped];

最后在我实现的 .m 文件中:

-(void)imgTouchUp:(id)sender {
NSLog(@"imgTouchUp");
UITapGestureRecognizer *gesture = (UITapGestureRecognizer *)sender;
NSLog(@"tap detected on %li", (long)gesture.view.tag);
}

有了这一切,它应该能识别出点击我的图像,但什么也没有发生。有什么想法吗?

最佳答案

因此,由于像 UILabelUIImageView 这样的组件不是设计为“可触摸”的,因此添加“可触摸”功能(如 UITapRecognizer),你必须将他们的 userInteractionEnabled 设置为 YES

因此,即使您为 UIImageView (star1) 正确设置了此属性,因为您将其添加为 ratingLabelBody 的 subview ,你无法触发你的 UITapGestureRecognizer (imgTouchUp:)。
您必须对 star1 的父 View 执行相同的操作,即 ratingLabelBody

用代码翻译,你只需要做:

[ratingLabelBody setUserInteractionEnabled:YES];

关于ios - 点击检测不适用于 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23765590/

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