UITableView: le déplacement d'une ligne dans une section vide

voix
4

J'ai UITableViewquelques sections vides. Je voudrais à l'utilisateur de pouvoir déplacer une ligne en les utilisant les commandes standard en mode édition. La seule façon que je peux le faire est si loin d'avoir une ligne fictive dans mes sections « vides » et essayer de le cacher en utilisant tableView:heightForRowAtIndexPath:pour donner la ligne fictive une hauteur de zéro. Cela semble le laisser comme une ligne de 1 pixel. Je peux probablement cacher cela en faisant un type particulier de cellule qui vient rempli [UIColor groupTableViewBackgroundColor], mais est - il une meilleure façon?

Tout cela est en mode groupé de UITableView.

MISE À JOUR: On dirait que déplacer les lignes en sections vides est possible sans trucs, mais la « sensibilité » est assez mauvais que vous avez besoin d' astuces pour le rendre utilisable pour les utilisateurs généraux (qui ne seront pas assez patient pour planer lentement la ligne autour de la section vide jusqu'à ce que les choses cliquez sur).

Créé 17/03/2009 à 17:07
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
1

Je trouve que dans iOS 4.3, la rangée fictive doit avoir une hauteur d'au moins 1 pixel afin de donner l'effet désiré de permettre une rangée d'être déplacé dans cette section.

J'ai aussi trouvé que la ligne fictive est nécessaire que dans la première et la dernière section; toutes les sections entre les deux ne sont pas ce problème.

Et il semble que dans iOS 5.0, pas de lignes fictives ou des tours spéciaux sont nécessaires à tous.

Créé 20/12/2011 à 02:22
source utilisateur

voix
0

Je trouve que si vous revenez -1,0 de la méthode heightForRowAtIndexPath il va supprimer la ligne 1 pixel.

Créé 08/01/2011 à 13:16
source utilisateur

voix
0

Tout en gérant l'édition, vous pouvez contrôler si l'affichage du tableau est en mode Edit. Utilisez ce drapeau à l' intérieur de cellForRowAtIndexPathdécider la météo ou de ne pas afficher la ligne « en blanc ». En mode « normal », la ligne ne sera pas afficher, mais quand doit s'appelé à nouveau et cette fois de modifier "la cellForRowAtIndexPath les robinets de l' utilisateur décider d'afficher la ligne. Les détails sur la façon de faire qui dépendent de votre source de données et comment vous le coller sur l'écran. Si vous ne recevez pas l'appel à nouveau, vous pouvez injecter manuellement les lignes avec insertRowsAtIndexPaths/ deleteRowsAtIndexPathset / ou appeler reloadDatapour forcer un rafraîchissement.

Créé 17/03/2009 à 17:24
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more