在我的应用程序中,我编写了以下代码行:
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[mybutton1 addGestureRecognizer:tapper];
[mybutton2 addGestureRecognizer:tapper];
[mybutton3 addGestureRecognizer:tapper];
[tapper release];
}
-(void)tapped:(UIGestureRecognizer *)sender{
NSLog(@"I'am in tapped");
}
但没有发生任何事。为什么?如果我需要点击按钮的currentTitle,我可以吗?
谢谢
答案 0 :(得分:0)
你错过了识别器代表。实现这一点。您还应该将UIGestureRecognizerDelegate
协议添加到头文件中,然后生成recognizer.delegate = self
。
re:获得头衔 - 你可以获得冠军。在您的点击事件处理程序中,您可以从发件人对象中提取该信息。我稍后会发布一些代码......
答案 1 :(得分:0)
您无需使用手势识别器来检测按下按钮的时间。按钮知道什么时候被按下!
尝试:
{
// Blah...
[myButton addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside];
// Other stuff
}
-(void)tapped:(id)sender {
NSLog (@"I'm in tapped!");
}
答案 2 :(得分:0)
手势识别器一次只能附加到一个视图。使用IBAction可以轻松地处理按钮上的单击。您可以创建一个IBAction并将所有三个按钮连接到它。
- (IBAction)tapped:(id)sender {
UIButton *button = (UIButton *)sender;
NSLog(@"%@", button.titleLabel.text);
}