2010-12-09 7 views
0

Hey! J'ai besoin d'ajouter le nombre dans la uitableviewcell d'une telle manière que lorsque je déclenche la fonction de balayage, le nombre devrait être incrémenté dans la cellule correspondante et tout en tapant le compte devrait être décrémenté .. Quelqu'un peut-il m'aider dans ce ..Fonction de balayage personnalisé dans UITableViewCell ne fonctionne pas

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
UITableViewCell *cell = nil; 
NSString *CellIdentifier = @"sample"; 
     if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 

} 
UISwipeGestureRecognizer *recognizer; 

recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)]; 
[self addGestureRecognizer:recognizer]; 
    self.tapRecognizer = (UITapGestureRecognizer *)recognizer; 
    recognizer.delegate = self; 
[recognizer release]; 


recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; 

[self addGestureRecognizer:recognizer]; 
[recognizer release]; 
UILabel *cookieLabel = [[UILabel alloc] initWithFrame:CGRectMake(5,5, 120,30)]; 
cookieLabel.text = @"hello"; 
cookieLabel.font = [UIFont systemFontOfSize:15.0f]; 
cookieLabel.textColor = [UIColor blackColor]; 
cookieLabel.backgroundColor = [UIColor redColor]; 
[cell.contentView addSubview:cookieLabel]; 
[cookieLabel release]; 
cell.selectionStyle = UITableViewCellSelectionStyleGray; 

costLabel = [[UILabel alloc] initWithFrame:CGRectMake(200, 5, 230, 30)]; 
//costLabel.text = handleSwipeFrom:; 
costLabel.font = [UIFont systemFontOfSize:15.0f]; 
costLabel.textColor = [UIColor blackColor]; 
costLabel.backgroundColor = [UIColor greenColor]; 
[cell.contentView addSubview:costLabel]; 
[costLabel release]; 
[self setUserInteractionEnabled:YES]; 

return cell; 
} 
+0

il sera utile si vous formatez le code dans votre question en tant que code ... il est impossible de lire ceci. – SpaceDog

Répondre

3

ne pas ajouter le UISwipeGestureRecognizer à la cellule. Ajoutez-le à UITableView.

I utilisé TISwipeableTableView comme base et l'a modifié fortement à fonctionner correctement (ils ont fait leur propre manipulation tactile, ce qui a entraîné une « bizarre, unnative » sentiment)

- (void)didSwipe:(UIGestureRecognizer *)gestureRecognizer { 
    if ([MRUserDefaults sharedMRUserDefaults].isSwipeMenuEnabled) { 
    if (gestureRecognizer.state == UIGestureRecognizerStateEnded) { 
     CGPoint swipeLocation = [gestureRecognizer locationInView:self]; 
     NSIndexPath *swipedIndexPath = [self indexPathForRowAtPoint:swipeLocation]; 
     TISwipeableTableViewCell* swipedCell = (TISwipeableTableViewCell *)[self cellForRowAtIndexPath:swipedIndexPath]; 

     if ([swipedCell isKindOfClass:[TISwipeableTableViewCell class]]) { 
     if (![swipedIndexPath isEqual:indexOfVisibleBackView]) { 
      [self hideVisibleBackView:YES]; 
      [swipedCell revealBackView]; 
      [self setIndexOfVisibleBackView:swipedIndexPath]; 

      if (swipeDelegate && [swipeDelegate respondsToSelector:@selector(tableView:didSwipeCellAtIndexPath:)]){ 
      [swipeDelegate tableView:self didSwipeCellAtIndexPath:[self indexPathForRowAtPoint:swipeLocation]]; 
      }   
     } 
     } 
    } 
    } 
} 

- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { 
    if ((self = [super initWithFrame:frame style:style])) { 
    if ([MRUserDefaults sharedMRUserDefaults].isSwipeMenuEnabled) { 
     UIGestureRecognizer *swipeGesture = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)] autorelease]; 
     [self addGestureRecognizer:swipeGesture]; 
    } 
    } 
    return self; 
} 

Cela devrait vous aider à démarrer.

0

[addGestureRecognizer cellulaire: reconnaisseur]

+0

j'ai ajouté mais ça ne marche pas pour ça aussi .. –

Questions connexes