2010-09-22 116 views
0

是否有任何方法来隐藏UIButton,直到UIImageView被按下? 当图片被按下时,我需要显示后面的按钮,就像它在iPhone上的照片应用程序工作? 这里是我的UIButton的代码:当图像被触摸时显示UIButton?

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [self ladeImage]; 
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    btn.frame = CGRectMake(10, 10, 40, 40); 
    [btn addTarget:self action:@selector(goToViewA) forControlEvents:UIControlEventTouchUpInside]; 
    [btn setTitle:@"<<" forState:UIControlStateNormal]; 
    [self.view addSubview:btn]; 

    } 
+0

有没有办法让你接受更多的答案,你所问的24个问题? – willcodejavaforfood 2010-09-22 08:10:00

+0

你的问题是什么?对不起,我不明白你的意思 – Marco 2010-09-22 08:14:02

+0

有一个选项,在网站上说如果答案是好的或不。而且你没有接受任何关于你所有问题的答案。所以,也许你可以从这一步开始 – Vinzius 2010-09-22 08:20:12

回答

2

第一步:btn.hidden = YES

然后,你必须子类的UIImageView作出反应,其touchesEnded:事件并更改按钮的隐藏属性出现。为此,正确的方法是创建一个协议(使用viewTouched方法)。在包含按钮和ImageView的viewController中实现该协议。向子类ImageView添加一个委托(即id<MyCustomProtocol> _delagate;),并将视图控制器分配给这个操作。

+0

好吧,我现在已经解决了这个问题,非常感谢你,我也接受了答案:-) – Marco 2010-09-22 08:57:39

0
btn.hidden = YES; 

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image name"]]; 
imageView.userInteractionEnabled = YES; // here to enable touch event 
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGestureRecongizer:)]; // handleTapGestureRecongizer is method will call when tap even fire 
[imageView addGestureRecognizer:tap]; // Add Tap gesture recognizer to image view 
[tap release], tap = nil; 
[self.view addSubview:imageView]; 
[imageView release], imageView = nil; 

方法handlerTapGestureRecognizer:

- (void)handleTapGestureRecongizer:(UITapGestureRecognizer *)gestureRecognizer{ 
if (gestureRecognizer.state == UIGestureRecognizerStateEnded) { 
    btn.hidden = NO; 
} 

}

有乐趣!