2010-09-02 7 views
0

J'ai un UISlider censé mettre à jour la couleur d'un texte. Maintenant, je veux que l'utilisateur puisse choisir entre toutes les couleurs du spectre (en tout cas de toute façon). Je pensais utiliser ce UISlider pour représenter les couleurs et lorsque vous faites glisser le curseur, la valeur/couleur change.UISlider pour représenter le spectre de couleurs

Je sais que le spectre n'est pas séquentiel comme: [0,0,0] ... [255,0,0] ... [255,1,0] ... [255,255,0] etc. Donc: un conseil sur la façon dont je peux implémenter cela?

Répondre

0

Oui, la couleur est une valeur multidimensionnelle, mais il existe différentes manières de découper ces dimensions. Je pense qu'une teinte, saturation, constructeur de luminosité, plutôt que RGB, vous donnera exactement l'effet que vous voulez. Par exemple, souvent, je vais générer une couleur aléatoire avec [UIColor colorWithHue:<random float in [0,1]> saturation:1.f brightness:1.f alpha:1.f]. Faites glisser linéairement la teinte de 0 à 1, avec la saturation et la luminosité fixées aux valeurs les plus lisibles (ou peu importe).

+0

solution intéressante. Je vais l'essayer! – sebrock

+0

Parfait, c'était exactement ce dont j'avais besoin! – sebrock

2

La couleur est au moins une sélection à deux ou trois dimensions. Et un curseur fournit uniquement une sortie scalaire. Si vous souhaitez une sélection en douceur en utilisant uniquement un paramètre scalaire, vous pouvez essayer de tracer une ligne de chemin sur un nuancier (ou une représentation fonctionnelle de celui-ci) et sélectionner un point sur ce chemin de façon paramétrique.

+0

J'ai eu cette idée aussi, mais l'animation ne serait pas aussi belle. Je vais y regarder de toute façon. – sebrock