2010-06-14 6 views
0
[sld1 setThumbImage:[UIImage imageNamed:@"Blue.png"] forState:UIControlStateHighlighted]; 
[sld1 setThumbImage:[UIImage imageNamed:@"Blue.png"] forState:UIControlStateNormal  ]; 

Est-ce que cela entraînerait la disparition de l'image du curseur? Les miens sont tous partis. (L'image du pouce s'affiche très bien.)Réglez thumbImage et regardez le curseur disparaître?

Les documents d'Apple donnent l'impression que je peux utiliser n'importe quel ONE de 2 lignes de code. (Mais je suppose que je vraiment besoin des deux.)

Et je ne peux pas trouver quelque chose sur « vous devez toujours faire tout 4 »:

Set the normal-state image. 
Set the highlighted-state image. 
Set the setMinimumTrackImage. 
Set the setMaximumTrackImage. 

Répondre

1

Si vous commencez la personnalisation de l'UISlider avec des graphiques, vous doit définir au moins 3 morceaux de graphiques. côté droit et gauche de la barre de suivi et l'image du pouce:

Voici comment je l'ai fait la dernière fois que je l'UISlider:

CGRect frame = CGRectMake(20.0f, 6.0, 280.0f, 20.0f); 
    UISlider *customSlider = [[UISlider alloc] initWithFrame:frame]; 
    [customSlider addTarget:self action:@selector(sliderMove:) forControlEvents:UIControlEventValueChanged]; 
    [customSlider addTarget:self action:@selector(sliderStart:) forControlEvents:UIControlEventTouchDown]; 
    [customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpInside];   
    [customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpOutside]; 

    // in case the parent view draws with a custom color or gradient, use a transparent color 
    customSlider.backgroundColor = [UIColor clearColor];  
    UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider.png"] 
           stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 

    UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider_right.png"] 
           stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 

    [customSlider setThumbImage: [UIImage imageNamed:@"slider-knop.png"] forState:UIControlStateNormal]; 
    [customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal]; 
    [customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal]; 

I mon optique, il n'a pas de sens d'avoir un mis en évidence Etat pour l'UISlider, ou tout autre état, votre doigt couvrira probablement l'image du pouce, de sorte que l'utilisateur ne le verra jamais. Je ne suis pas sûr que cela se limite à UIButton et peut-être qu'il ne peut pas le gérer?

+0

"Doit modifier au moins 3 images": Cela semble fonctionner différemment si vous faites votre curseur avec IB ou Code. (Comment vais-je garder tout cela droit ???) – Susanna

+0

"Aucun sens dans le changement de l'état en surbrillance": Je * JAMAIS * garder mon pouce sur l'image thumbImage quand je le glisse. Pas besoin de. Ça fonctionne encore. Donc, je ne veux jamais que mon image revienne brusquement à un autre graphique parce que j'ai oublié de mettre l'état highligted. – Susanna

+0

Où obtenez-vous vos images "slider_right et left png"? Existe-t-il un moyen de trouver/charger/utiliser les images déjà intégrées dans les frameworks? (Dans le cas improbable où Apple les changera dans le futur.) Ou est-ce que je dois aller capturer des images existantes ... juste pour les sauvegarder ... et les inclure dans mon paquet ... et recharger leur? (Ugh, quelle perte de temps.) – Susanna

Questions connexes