2012-04-02 6 views
0

Ich habe meine Tabellenansicht und die Zellen darin haben den UILongPressGestureRecognizer hinzugefügt. Das Problem ist, dass sobald eine Zelle berührt wird, diese hervorgehoben wird, aber sobald meine lange Geste beginnt (die Taste gedrückt hält), verschwindet die Hervorhebung. Die Geste funktioniert und sie wird immer noch gehalten, aber es ist ein wenig verwirrend für den Benutzer, weil sie nicht wissen, ob es immer noch gehalten wird. Wie kann ich die Zelle während des Haltens hervorgehoben halten?TablView mit Holdgesture in Zellen un-Hervorhebung

einige Code:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

     //add long press gesture for the audio AB (eventually VC and TP as well) list 
     //so that users can hold the cell and after 5 seconds have the dialpad for editing that entry 
     UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] 
                initWithTarget:self 
                action:@selector(handleLongPress:)]; 
     longPress.minimumPressDuration = 1; 
     [cell addGestureRecognizer:longPress]; 

    } 
    cell.textLabel.text = [self.tableArray objectAtIndex:indexPath.row]; 



    return cell; 
} 


- (void)handleLongPress:(UILongPressGestureRecognizer*)sender 
{ 
    //used to get indexPath of cell pressed 
    UITableViewCell *cell = (UITableViewCell *)[sender view]; 

    //get the indexPath of cell pressed 
    NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell]; 

    //use the index press to figure out the proper join to hold 
    self.sharedJoinNumber = indexPath.row+286 ; 

} 
+0

Ich würde vorschlagen, Sie versuchen, mit [Zelle SetHighlighted: YES animiert: YES]; –

Antwort

0

ich dieses Problem durch Verwendung

//highlight the apprioriate cell 
    [self.myTableView selectRowAtIndexPath:indexPath animated:FALSE scrollPosition:UITableViewScrollPositionNone]; 

direkt nach - (void)handleLongPress:(UILongPressGestureRecognizer*)sender

aber jetzt behoben habe, wenn der Halt die nächste Zelle Bedürfnisse geklickt abgebrochen werden doppelt getaped um hervorgehoben zu werden. Grundsätzlich wird der nächste Tipp nach dem Abbruch der Longpress nicht bemerkt. aber ich denke, das ist eine separate Question, die ich entsprechend ablegen werde. Der obige Code behebt mein Problem