当图像被触摸时显示UIButton?
问题描述:
是否有任何方法来隐藏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];
}
答
第一步:btn.hidden = YES
然后,你必须子类的UIImageView作出反应,其touchesEnded:
事件并更改按钮的隐藏属性出现。为此,正确的方法是创建一个协议(使用viewTouched方法)。在包含按钮和ImageView的viewController中实现该协议。向子类ImageView添加一个委托(即id<MyCustomProtocol> _delagate;
),并将视图控制器分配给这个操作。
+0
好吧,我现在已经解决了这个问题,非常感谢你,我也接受了答案:-) – Marco 2010-09-22 08:57:39
答
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;
}
}
有乐趣!
有没有办法让你接受更多的答案,你所问的24个问题? – willcodejavaforfood 2010-09-22 08:10:00
你的问题是什么?对不起,我不明白你的意思 – Marco 2010-09-22 08:14:02
有一个选项,在网站上说如果答案是好的或不。而且你没有接受任何关于你所有问题的答案。所以,也许你可以从这一步开始 – Vinzius 2010-09-22 08:20:12