2016-04-02 6 views
1

Ich möchte Popup auf lange drücken Geste öffnen. Meine Anwendung mit UITableView und wenn Benutzer lange auf UITableviewCell Popup zu öffnen. Wenn der Benutzer den Finger lange genug hält, wird nur Popup angezeigt. Nicht wenn der Benutzer seinen Finger lange drückt und losläßt.Öffnen Popup auf lange drücken Geste wie Whats App

Ich benutze folgenden Code: Mit diesem Code, wenn ich meine Finger loslassen wird der After Pop geöffnet, so dass es falsch ist. Ich möchte das Popup bei langem Drücken öffnen, ohne den Finger loszulassen.

//Long press gesture 
UILongPressGestureRecognizer *longPressGesture= [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPress:)]; 
longPressGesture.minimumPressDuration = .4; //seconds 
longPressGesture.delegate = self; 
longPressGesture.delaysTouchesBegan = YES; 
cell.titleLabel.userInteractionEnabled = YES; 
[cell.titleLabel addGestureRecognizer:longPressGesture]; 
+0

Ist für Sie diesen Code arbeiten? – user3182143

Antwort

1

Sie können so etwas tun:

-(void) handleLongPress:(UILongPressGestureRecognizer *)sender 
{ 
    if (sender.state == UIGestureRecognizerStateBegan) 
    { 
    //Start a timer and perform action after whatever time interval you want. 
    } 
    if (sender.state == UIGestureRecognizerStateEnded) 
    { 
    //Check the duration and if it is less than what you wanted, invalidate the timer. 
    } 
} 
+0

Danke, es funktioniert gr8. –

+0

@Moni_BQ - Super !! –

2

Wenn Sie eine Aktion so schnell nehmen wollen, wie die lange drücken beginnt, dann müssen Sie prüfen, ob Zustand UIGestureRecognizerStateBegan ist und dann Code schreiben, die Sie ausführen möchten, wenn lange drücken Geste beginnt. Versuchen Sie es mit den folgenden Codezeilen.

-(void) handleLongPress:(UILongPressGestureRecognizer *)sender 
{ 
    if (sender.state == UIGestureRecognizerStateBegan) 
    { 
    //Write code for open pop up. 
    } 
}