2012-02-25 3 views

Répondre

0

Il n'y a malheureusement pas de rappel, mais comme le comportement par défaut est d'ajuster la valeur 'alpha' de UITableViewCell, vous pouvez vérifier cela dans '- (void) layoutSubview' de votre sous-classe UITableViewCell.

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    if (self.alpha < 0.99) { 
     // we are most likely being dragged 
    } else { 
     // restore for not being dragged 
    } 
} 

Notez que c'est un peu un hack. J'ai remarqué que cela ne fonctionne pas lorsque separatorStyle de la vue table est défini sur 'UITableViewCellSeparatorStyleNone'.

0

Je ne sais pas si cela est possible dans le cadre. Mais si ce n'est pas le cas, vous pouvez essayer de surcharger la méthode touchedMoved dans une sous-classe UITableViewCell?

Vous pourrez alors également récupérer l'état de votre tableView (édition ou non) dans la sous-classe personnalisée de votre UItableViewCell.

0

C'est possible, oui!

Dans ViewController.h

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController <UIScrollViewDelegate> 
{ 
    IBOutlet UITableView * myTable; 
    IBOutlet UIScrollView * myScroll; 
} 

Dans ViewController.m

#pragma mark - View lifecycle 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    myScroll = myTable; 
    myScroll.delegate = self; 


} 

#pragma Mark UIScrollViewDelegate 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    NSLog(@"%f",scrollView.contentOffset.y); 
} 

Ce qu'il est.

+1

Cela va être appelé à chaque fois que la vue de la table défile, qu'une cellule soit déplacée ou non. – akaru

0

C'est possible oui! Mais vous devez garder une trace sur les états vous-même dans le contrôleur de vue. Définissez un membre BOOL tableDrag = NO; Dans la méthode scrollViewWillBeginDragging vous définissez tableDrag = YES; Et dans la méthode scrollViewDidEndDragging vous définissez tableDraw = NO;

Maintenant, dans la méthode de délégué scrollViewDidScroll vous pouvez définir l'arrière-plan.

Si vous avez plusieurs défileurs, marquez l'affichage défilant pour savoir lequel est en train de glisser.

J'espère que ça aide!

Questions connexes