Ios 是否通过单击来隐藏图像视图?
当在我的应用程序中点击一个特定的按钮,我想显示一个图像时,我使用UIImageView来实现这一点。然后我想通过点击来隐藏那个图像,但我不知道怎么做 我尝试了下面的代码,但不起作用Ios 是否通过单击来隐藏图像视图?,ios,uiimageview,Ios,Uiimageview,当在我的应用程序中点击一个特定的按钮,我想显示一个图像时,我使用UIImageView来实现这一点。然后我想通过点击来隐藏那个图像,但我不知道怎么做 我尝试了下面的代码,但不起作用 @implementation ViewController -(IBAction)pic { UIImage *img = [UIImage imageNamed:@"test.png"]; [ImageView setImage:img]; imageView.userInteractionEnabled =
@implementation ViewController
-(IBAction)pic {
UIImage *img = [UIImage imageNamed:@"test.png"];
[ImageView setImage:img];
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tapRecognize = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleTap:)];
tapRecognizer.delegate = self;
[imageView addGestureRecognizer:tapRecognizer];
}
- (void)handleTap:(UITapGestureRecognizer *)tapGestureRecognizer {
//handle tap
}
你可以在按钮上放一张图片。不过,我认为使用UIImageView是正确的决定。您需要以编程方式将一个手势连接到它。您可以使用类似于以下内容的方法执行此操作:
let singleFingerTap = UITapGestureRecognizer(target: self, action: "viewTapped:")
imageView.addGestureRecognizer(singleFingerTap)
您可以将轻触手势识别器添加到包含图像的UIImageView
var tapGesture = UITapGestureRecognizer(target: <#AnyObject#>, action: <#Selector#>)
var-tappershive=UITapGestureRecognizer(目标:,操作:)
在指定为操作的方法中,只需将myImageView.alpha设置为0。这实际上应该“隐藏”您的图像视图。如果您想隐藏图像视图,也可以将其高度设置为0。这非常简单
改为使用UIImageView,并检查UIImageView上的userInteractionEnabled是否为YES。然后,您可以添加一个手势识别器
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIGestureRecognizerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *touchImageView;
@end
另一种方法是导入一个开源项目,例如,让帖子全屏显示(给用户一个更好的全屏视图),并允许他们滑动或取消以远离图像(类似于在Twitter应用程序中查看图像。这将不起作用,因为默认情况下图像视图不会响应用户交互。答案是Thanx。不幸的是,我无法让它起作用(对不起,我是这方面的初学者)。你能看一看我添加到原始问题中的代码吗?@JohanGrip更新了我的答案。它成功了!非常感谢@Zhr。虽然有一个问题;它只工作一次,当我第二次点击按钮时,图像没有显示。我想这可能与alpha现在设置为0有关。很高兴它成功了。请接受解决方案作为答案,如果它对您有效。@JohanGrip您能详细说明第二次是什么意思以及您想要实现什么吗?您应该将所有代码移出iAction并移入主类。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.touchImageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleTap:)];
tapRecognizer.delegate = self;
[self.touchImageView addGestureRecognizer:tapRecognizer];
}
- (void)handleTap:(UITapGestureRecognizer *)tapGestureRecognizer {
//handle tap
self.touchImageView.alpha = 0.0f;
}