2010-07-12 5 views
2

J'ai slider dans la cellule de ma table, voici mon code d'initialisation du curseur:UISlider, le pouce ne bouge pas

UISlider* slider = [[UISlider alloc] init]; 
slider.continuous = NO; 

slider.maximumValue = 2; 
slider.minimumValue = 0.5f; 
slider.value = 0.5f; 

... 
//put slider into cell 

Et je ne peux pas bouger le pouce de ce curseur. Pourquoi? S'il vous plaît, dites-moi ce que je fais mal?

MISE À JOUR: si la valeur initiale du curseur est 0,500001f - cela fonctionne!

Répondre

0

Si votre pouce n'active pas le curseur, c'est probablement parce qu'il y a un UIV au-dessus. S'il vous plaît postez votre code pour cellForRowAtIndexPath

+0

Je ne pense pas que ce problème dans UIView au-dessus du curseur, parce que si je fixe la valeur initiale pour slider pas égal c'est la valeur minimum - thumb fonctionne, jusqu'à ce qu'il pistes à la valeur minimale. -je utiliser ma propre sous-classe UITableViewCell, et je pense que le code pour cellForRowAtIndexPath ne permet pas, en tout lieu: - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) {cellForRowAtIndexPath TableViewCellEx * myCell = .. . ... // création du curseur ... myCell.embeddedView = curseur; } Vue de la banque de propriétés embeddedView de TableViewCellEx qui sera ajoutée en tant que sous-vue à la cellule – iKiR

+0

S'il vous plaît, une aide? – iKiR

+0

mettez à jour votre question avec votre code et cela aidera les autres à voir le problème. – coneybeare

1

Je doute que cela est directement pertinent à cette question, mais j'ai eu un problème similaire - mon curseur pourrait avoir sa valeur définie par mon programme et il se déplacerait, mais je ne pouvais pas faire glisser et déplacer il. Il s'est avéré que j'avais codé une méthode trackRectForBounds pour ma sous-classe de curseur, sans réaliser que la position (x, y) dans cette méthode est relative à l'UIView qui est le curseur - pas la vue contenant. J'ai donc utilisé le même CGRect pour les limites de piste que pour le curseur dans initWithFrame. Cela place la piste de curseur en dehors de la vue du curseur. Le résultat était que le curseur du curseur ne pouvait pas être déplacé, et tout clic dans la piste ou la vue du curseur était géré par la vue contenant.

Si je n'avais pas donné une couleur de fond distincte à la vue du curseur, il n'aurait pas été clair que la piste était en dehors de la vue, et je ne sais pas comment je l'aurais résolu.

Lorsque j'ai changé le (x, y) dans trackRectForBounds à (0, 0), OU supprimé le remplacement trackRectForBounds tout à fait, tout a parfaitement fonctionné.

Peut-être que cet article aidera quelqu'un d'autre.

0

Pas assez de code ici pour estimer le problème. Mais j'ai récemment eu le même problème, alors je vous dis juste quel est mon problème et j'espère que cela aidera.

Fondamentalement, je viens de séparer la cellule en différentes régions, avec des étiquettes et des vues différentes. J'ai découvert si j'ajoute le curseur comme sous-vue à l'objet UILabel, le curseur ne bougera pas. Donc, j'ai d'abord ajouter un UIView à la même région, puis ajouter à la fois l'UILabel et l'UIslider à cette UIView. Maintenant tout fonctionne.

Questions connexes