Comportement des sliders ?

lugdanumlugdanum Membre
22:47 modifié dans API UIKit #1
Bonjour tout le monde

Je rencontre une petite difficulté avec un slider et je ne comprends vraiment pas d'où cela peux venir ?

J'utilise ce code :
<br />CGFloat val = [monslider value];<br />	if(val&gt;=2){monlabel.text = [NSString stringWithFormat:@&quot;%0.0f texteauxpluriels&quot;, val];}<br />	else if((val&gt;=1)&amp;&amp;(val&lt;2)){monlabel.text = [NSString stringWithFormat:@&quot;%0.0f texteausingulier&quot;, val];}<br />	else {monlabel.text = [NSString stringWithFormat:@&quot;rien&quot;];}<br />


Mon slider va de 0 à  100

à  0 il affiche "rien"
à  1 il affiche "texteausingulier"
à  2 il affiche "texteausingulier" et "texteauxpluriels" selon la position du slider au niveau du 2

j'ai mis un deuxième label avec %0.2f pour en voir un peu plus et voici ce qu'il affiche pour la même chose ?
de 0 à  1 il affiche "rien"
de 1 à  1.57 il affiche texteausingulier"
au delà  de 1.57 il affiche "texteauxpluriels"

est-ce que quelqu'un a une idée d'où vient ce problème ?

Merci d'avance.

Réponses

  • Philippe49Philippe49 Membre
    mai 2009 modifié #2
    Une erreur est le format %0.0f.

    %5.2f signifie d'écrire avec 5 caractères dont 2 après la virgule, ce qui revient à  dire 2 chiffres, le point, 2 chiffres.
    %0.0f ne signifie rien.
  • lugdanumlugdanum Membre
    mai 2009 modifié #3
    Ok merci pour ta réponse.

    Par contre j'avais lu sur un site anglais (j'ai mal du comprendre?!) qu'en mettant %0.0f cela indiquait chiffre infini avant la virgule et aucun après.

    Si "%5.2f signifie d'écrire avec 5 caractères dont 2 après la virgule, ce qui revient à  dire 2 chiffres, le point, 2 chiffres." comment indique t-on le nombre de caractères avant la virgule, si on ne connaà®t pas le maximum qui doit s'afficher ?

    Sinon j'ai fait ce que tu m'as indiqué (j'ai essayé en tout cas), mais ça bug encore. J'ai également lu dans un forum anglais qu'un slider retourne un float et que cela peux être la cause.

    Si quelqu'un à  le courage de m'aider, je le remercie d'avance.
    ::)
  • 22:47 modifié #4
    si tu veux juste des 1-2-3 tu peux faire
    <br />int value = (int)monFloat;<br />
    


    Par contre je crois que tu peux faire en sorte qu'un slider s'arrête sur des points précis et donc n'autoriser que des (int) en retour  ???
  • Philippe49Philippe49 Membre
    22:47 modifié #5
    dans 1242236481:

    Par contre j'avais lu sur un site anglais (j'ai mal du comprendre?!) qu'en mettant %0.0f cela indiquait chiffre infini avant la virgule et aucun après.

    Pour cela c'est %.0f

    dans 1242236481:

    Si "%5.2f signifie d'écrire avec 5 caractères dont 2 après la virgule, ce qui revient à  dire 2 chiffres, le point, 2 chiffres." comment indique t-on le nombre de caractères avant la virgule, si on ne connaà®t pas le maximum qui doit s'afficher ?

    Par soustraction, si tu mets deux chiffres après la virgule, et 5 caractères en tout, cela fait 5 - 2(après la virgule) - 1 (le point) = 2 chiffres avant la virgule.
    Si tu veux laisser libre le nombre de chiffres avant la virgule, mettre %.2f


    dans 1242236481:

    Sinon j'ai fait ce que tu m'as indiqué (j'ai essayé en tout cas), mais ça bug encore. J'ai également lu dans un forum anglais qu'un slider retourne un float et que cela peux être la cause.

    Non, je crois qu'il faut que tu quittes ce site Anglais qui n'a l'air de raconter que des ... Viendez sur OsxDev, le site conforme à  vos rêves !
  • Philippe49Philippe49 Membre
    22:47 modifié #6
    dans 1242236721:

    si tu veux juste des 1-2-3 tu peux faire
    <br />int value = (int)monFloat;<br />
    


    Par contre je crois que tu peux faire en sorte qu'un slider s'arrête sur des points précis et donc n'autoriser que des (int) en retour  ???

    Oui, si tu veux des int, règle cette option dans IB.
  • lugdanumlugdanum Membre
    22:47 modifié #7
    dans 1242236721:

    si tu veux juste des 1-2-3 tu peux faire
    <br />int value = (int)monFloat;<br />
    



    Merci, c'est cool, comme cela ça fonctionne parfaitement.
    Par contre Philippe49 je n'ai pas trouvé comment faire avec IB, ces options se règlent où ?

    En tout cas merci à  vous deux, j'ai appris deux choses avec vous !
    o:)

    Viendez sur OsxDev, le site conforme à  vos rêves ! -->C'est clair, y a pas photo !  <3 <br />
  • Philippe49Philippe49 Membre
    22:47 modifié #8
    dans 1242245781:

    Par contre Philippe49 je n'ai pas trouvé comment faire avec IB, ces options se règlent où ?

    Oups, cela existe dans IB pour les NSSlider, sur plate forme Mac donc, par sur plate-forme iPhone.
  • lugdanumlugdanum Membre
    22:47 modifié #9
    Ok merci bien pour tout !
Connectez-vous ou Inscrivez-vous pour répondre.