Possible Duplicate:
UILongPressGestureRecognizer on UITableViewCell – double call
I am new to iPhone,
I am displaying Alert when Button is pressed long, but when i press button long my alert view gets called again.
Here is my code snippet,
- (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];
}
}
Any help will be appreciated.
EDIT:
-(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];
}
}
UILongPressGestureRecognizeris a long event process. Please check the event state either it has started, completed etc.I think, better to use the UIGestureRecognizerStateBegan state in your case.
Please modify your
longPressDetected()asPlease check all the below UIGestureRecognizerStates