2015-08-25 70 views
0

当敲击在我的应用程序特定的按钮,我希望有一个形象展示,我这样做是使用的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 
} 
+0

您应该将所有代码移出IBAction并放入主类 – Jeremiah

回答

2

它很简单。

使用的UIImageView,而不是和检查userInteractionEnabled是YES上的UIImageView。然后你可以添加一个手势识别器。

  1. 你的.h文件应该有像下面ATLEAST东西:

    #import <UIKit/UIKit.h> 
    
    @interface ViewController : UIViewController<UIGestureRecognizerDelegate> 
    
    @property (weak, nonatomic) IBOutlet UIImageView *touchImageView; 
    
    @end 
    

不要忘记的UIImageView从故事板连接到上述声明的属性。

在.m文件

- (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; 
} 
+0

Thanx为答案。不幸的是,我不能等它工作(我是这个初学者,对不起)。你能看看我添加到我原来的问题的代码吗? –

+0

@JohanGrip更新了我的答案。 –

+0

它工作!非常感谢你@Zhr。虽然有一个问题,它只能工作一次,当我再次点击按钮图像不显示。我想这可能与现在设置为0的alpha有关? –

0

您可以改为在按钮上放置图像。我认为使用UIImageView是正确的决定。您需要以编程方式将手势挂钩。为此,您可以使用的东西类似如下:

let singleFingerTap = UITapGestureRecognizer(target: self, action: "viewTapped:") 
    imageView.addGestureRecognizer(singleFingerTap) 
+0

这不起作用因为图像视图在默认情况下不会响应用户交互。 – rmaddy

0

您可以点击手势识别器添加到包含图像的UIImageView。

var tapGesture = UITapGestureRecognizer(target: <#AnyObject#>, action: <#Selector#>) 

在指定作为操作的方法,只需设置myImageView.alpha = 0。这应该基本上是“隐藏”您的图像视图。如果你想隐藏它,你也可以设置图像视图的高度为0。

0

另一种可能是导入一个开源的项目,如AKImageViewer,得到的帖子出现全屏(给用户带来更好的完整视图)并允许他们轻扫或取消摆脱图像(类似于在Twitter应用程序中查看图像