Ios 是否通过单击来隐藏图像视图?

Ios 是否通过单击来隐藏图像视图?,ios,uiimageview,Ios,Uiimageview,当在我的应用程序中点击一个特定的按钮,我想显示一个图像时,我使用UIImageView来实现这一点。然后我想通过点击来隐藏那个图像,但我不知道怎么做 我尝试了下面的代码,但不起作用 @implementation ViewController -(IBAction)pic { UIImage *img = [UIImage imageNamed:@"test.png"]; [ImageView setImage:img]; imageView.userInteractionEnabled =

当在我的应用程序中点击一个特定的按钮,我想显示一个图像时,我使用UIImageView来实现这一点。然后我想通过点击来隐藏那个图像,但我不知道怎么做

我尝试了下面的代码,但不起作用

@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。然后,您可以添加一个手势识别器

  • 您的.h文件应至少包含以下内容:

    #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;
    }