2011-10-26 58 views
0

請參閱下面的代碼。當我進入編輯模式時,由於長按識別器,我無法上下拖動單元格。如果我刪除了長按識別器,則所有內容都可以正常工作。編輯時對uitableview單元格的長按問題

任何幫助表示讚賞。

- (void)startEditingIndex 
    { 
     [self.navigationController setToolbarHidden:NO animated:YES]; 
     [self.tableView setEditing:YES animated:YES]; 
    } 


    // Customize the appearance of table view cells. 
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

     static NSString *CellIdentifier = @"Cell"; 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
      cell.textLabel.lineBreakMode = UILineBreakModeWordWrap; 
      cell.textLabel.numberOfLines = 0; 
     } 

     UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(startEditingIndex)]; 
     [cell addGestureRecognizer:longPress]; 
     [longPress release]; 


     NSString *cellText = @"Text"; 

     cell.textLabel.text = [[self.indexArry objectAtIndex:[[self.indexOrder objectAtIndex:indexPath.row] intValue]] objectForKey:cellText]; 

     return cell; 
    } 

回答

2

設置你的類來作爲longPress的委託,並實現以下的委託方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return ![self.tableView isEditing]; 
} 
+0

謝謝。它看起來像@interface RootViewController:UITableViewController { 我添加了你的代碼,它沒有做任何不同的事情。 – Alienz

+0

你需要'longPress.delegate = self;'。 – titaniumdecoy

相關問題