可能重复:
UITableViewCell 上的 UILongPressGestureRecognizer - 双重调用
我是 iPhone 新手,
我在长按按钮时显示警报,但是当我长按按钮时,我的警报视图被再次调用。
这是我的代码片段,
- (IBAction)longPressDetected:(UIGestureRecognizer *)gestureRecognizer {
//Gets text of Button.
UIButton *btn = (UIButton *)[gestureRecognizer view];
BtnText= [btn titleForState:UIControlStateNormal];
NSLog(@"longPressDetected");
UIAlertView* alert_view = [[UIAlertView alloc]
initWithTitle: @"Are you sure want to Delete ?" message:nil delegate: self
cancelButtonTitle: @"Yes" otherButtonTitles: @"No", nil];
[alert_view show];
[alert_view release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex==0) {
[self ReloadView];
[alertView dismissWithClickedButtonIndex:0 animated:TRUE];
}
else{
[alertView dismissWithClickedButtonIndex:1 animated:TRUE];
}
}
任何帮助将不胜感激。
编辑:
-(void)viewWillAppear:(BOOL)animated
{
for(int i=0;i<10i++)
{
if(i!=0)
{
if (i%4==0)
{
ypos+=180;
xpos=30;
}
else
{
xpos+=200;
}
}
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(xpos, ypos, 120,130);
[button setBackgroundImage:[UIImage imageNamed:@"ibook2.png"] forState:UIControlStateNormal];
[button setTitle:[NSString stringWithFormat:@"%@", [Downloadedepubs objectAtIndex:i]] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
LongPress = [[UILongPressGestureRecognizer alloc] init];
[LongPress addTarget:self action:@selector(longPressDetected:)];
LongPress.delegate = (id<UIGestureRecognizerDelegate>)self;
[button addGestureRecognizer:LongPress];
[self.view addSubview:button];
[LongPress release];
}
}