How to make UIButton work like Launcher in SpringBoard, when pressed for long timeinterval
- by KayKay
In my ViewController I am using UIButton which triggers some action when touchedUpInside. Upto here no problem, but i also want to add another action for touchDown event. More precisely i dont have an idea how to add that action to which event, that will work the same as when App-Icon is pressed longer in springboard which causes springboard enter in editing mode.Actually what i want is : when this button is kept holding for ,say about 2 seconds it will pop-up an alertView without touch being heldUp (with finger is still on button).
I have tried with 2 NSdate difference, one of which is allocated when touchedDown and other when touchUpInside. Its working and popping alert,but only after touchedUpInside. I want it to show alert without touch being removed. Here is the code.
(IBAction)touchedDown:(id)sender {
momentTouchedDown = [[NSDate alloc] init];//class variable
NSLog(@"touched down");
}
- (IBAction)touchUpInside:(id)sender {
NSLog(@"touch lifted Up\n");
NSDate *momentLifted = [[NSDate alloc] init];
double timeInterval = [momentLifted timeIntervalSinceDate:momentTouchedDown];
NSLog(@"time lifted = %@, time down = %@, time diff = %@", momentLifted, momentTouchedDown, [NSString stringWithFormat:@"%g",timeInterval]);
[momentLifted release];
if(timeInterval > 2.0) {
NSLog(@"AlertBox has been fired");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Yes"
message:@""//msg
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK"
, nil];
[alert show];
[alert release];
}
}
Please provide me an insight..thanks for help in advance.