Question

J'ai un UITableViewCell personnalisé qui contient un contrôle UISlider et un UILabel qui indique la valeur du texte actuel pour la position du curseur. Je veux mettre à jour l'étiquette comme le bouton de curseur est déplacé. Voici les éléments de base.

cellForRowAtIndexPath: Cette routine prend des données et met à jour la valeur du curseur et l'étiquette associée.

sliderValueChanged: Cette routine lit la valeur du curseur met à jour les données. Elle appelle ensuite [tableau reloadData] si l'étiquette est mis à jour.

Problème: D'une certaine façon le reloadData interrompt le flux des mises à jour. Si je remplace NSLog au lieu de reloadData je reçois un flux bien des mises à jour montrant la valeur du curseur. Pour tenter d'éviter une boucle que je mets dans des tests pour définir la valeur du curseur ou appelez reloadData à moins que la valeur était différente. Cela n'a pas résolu les choses.

Toute aide serait grandement appréciée!

Était-ce utile?

La solution

Le problème est causé par le [tableau reloadData] qui semble être la création d'un nouvel objet de cellule met à jour de sorte que le même curseur ne fonctionnent pas. La mise en œuvre correcte était d'obtenir la cellule référencée dans la routine sliderValueChanged et mettre l'étiquette à partir de là. Définir une étiquette sur le curseur pour indiquer la ligne et ensuite appeler la méthode pour obtenir la cellule avec le chemin d'index.

Autres conseils

Des trucs comme ça me est arrivé. Aller à construire les paramètres et la recherche d'un compilateur appelé battant le pavillon « Activer flottant appels à la bibliothèque de points ». Assurez-vous qu'il est désactivé. Voir si cela vous aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top