Je voudrais savoir si une cellule est déplacée (via la poignée sur le côté droit quand un UITableView est en mode d'édition). Je voudrais changer l'arrière-plan pendant qu'il est dans cet état.Comment déterminer si un UITableViewCell est déplacé?
Répondre
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'.
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.
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.
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!
- 1. Déterminer si un répertoire peut être déplacé sur NTFS
- 2. Déterminer si un fichier peut être déplacé ou copié
- 3. Comment déterminer si un pthread est actif?
- 4. Comment déterminer si un gif est animé?
- 5. Comment déterminer si objet est un NSNumber
- 6. Vérifier si un UITableViewCell est complètement visible
- 7. Comment savoir si UITableViewCell est sélectionné?
- 8. Comment puis-je déterminer si un élément de la bibliothèque a été déplacé/renommé?
- 9. Déterminer si un type est statique
- 10. Déterminer si l'erreur $ .ajax est un délai
- 11. Déterminer si un fichier audio est VBR
- 12. Comment déterminer si un groupe est un groupe de sécurité?
- 13. Comment déterminer si un employé est un gestionnaire?
- 14. Comment déterminer si un chemin est dans un répertoire? (POSIX)
- 15. .NET: Comment déterminer si un objet est un objet COM?
- 16. C# - comment déterminer si un Type est un nombre
- 17. Déterminer si un répertoire est inscriptible
- 18. Déterminer si un variabile est défini
- 19. Déterminer si un appel est en attente
- 20. Déterminer si un vecteur est ordonné
- 21. Déterminer si une entrée est un domaine
- 22. Déterminer si un websocket send() est terminé
- 23. Comment puis-je déterminer si un UITableViewCell a déjà été chargé?
- 24. Comment déterminer si l'élément Outlook est affiché
- 25. Comment déterminer si XML est bien formé?
- 26. Comment déterminer si NSString est vide
- 27. Comment déterminer si System.Object est System.Type
- 28. Comment déterminer si une table est créée?
- 29. Comment déterminer si une fonction est vide
- 30. Comment déterminer si mongoDB directoryperdb est défini?
Cela va être appelé à chaque fois que la vue de la table défile, qu'une cellule soit déplacée ou non. – akaru