Chaque cellule de vue de table a un contenu qui englobe toute la zone de la cellule. Ajoutez votre vue de menu contextuel en tant que vue de conteneur unique avec un arrière-plan opaque à la vue de contenu afin qu'elle soit au-dessus de tout le reste. Positionnez-le de sorte qu'il soit aligné à gauche (x = 0), définissez la largeur sur 0 et définissez-le comme caché. Ce seul conteneur peut inclure n'importe quelle autre sous-vue (boutons, etc.) et vous pouvez définir la vue de la cellule elle-même comme la cible des événements de bouton (puis l'envoyer vers la vue parent avec les informations d'index de cellule). Lorsque le moment est venu de l'afficher, réglez-le sur non masqué, puis utilisez l'animation UIView pour faire passer la largeur du conteneur de 0 à la largeur totale de la table. Réglez la durée assez bas (c'est-à-dire 0,2 seconde), donc c'est zippy. Lorsque vous exécutez l'animation, le menu contextuel s'affiche sur tout le reste dans la vue du contenu de la cellule. Pour le faire disparaître, inversez-le (réglez la largeur sur 0 dans un bloc UIView BeginAnimation). Vous pouvez également définir un gestionnaire de complétion d'animation à la fin et y faire un peu de ménage (définir la vue du conteneur sur hidden, release memory, etc.).
Jetez un oeil à https://github.com/thermogl/TISwipeableTableView Il a besoin d'un peu de polissage, mais il fonctionne et peut être un début. – myell0w
Attention, TISwipeableTableView perturbe les événements UITableView "normaux" ... en les simulant dans la classe. Donc, vous obtenez tout type de comportement bizarre non par défaut ... je vais essayer de le mettre en œuvre, mais c'était un briseur d'affaire. (Ce n'était pas trop dur de le réécrire) – steipete