Comment puis-je modifier une UIColor la teinte, la luminosité et la saturation?
Permet de dire que j'ai un UIColor
UIColor *color = [UIColor redColor];
Maintenant, je veux modifier la saturation/teinte/brigthness, comment dois-je faire?
J'ai lu la documentation mais je suis vraiment confus
Je veux modifier la UIColor j'ai fait ([UIColor redColor]) ne pas lancer une nouvelle couleur avec quelques préférences. Comment puis-je le modifier en conservant l'original. Je ne sais à propos de lacolorWithHue:saturation:brightness:alpha:
méthode, j'ai besoin de mettre à jour une couleur de propriétés, en gardant la couleur rouge.
- Vous pouvez utiliser CoreImage cadre. Qui va vous aider beaucoup.
- Chercher dans ce posts stackoverflow.com/questions/10071756/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez appeler
getHue:saturation:brightness:alpha:
sur votre couleur, puis ajuster les valeurs, puis créer une nouvelle couleur avec votre ajusté composants à l'aide de+[UIColor colorWithHue:saturation:brightness:alpha:]
Voici swift
UIColor
extension que vous pourriez trouver utiles:Malheureusement c'est assez embêtant de changer tout le
hsba
ourgba
valeurs d'une UIColor par défaut. À l'aide de HandyUIKit (l'installer via Carthage) rend votre vie beaucoup plus facile:Il existe également des options pour appliquer les changements relatifs:
La bibliothèque ajoute également certaines autres fonctions de l'INTERFACE utilisateur pratique dans votre projet – la caisse de son README sur GitHub pour plus de détails.
J'espère que cela aide!
Une remarque importante a pas encore parlé ici, c'est que votre UIColor doit être dans l'étendue de l'espace RVB. Tout dépend de votre couleur est créée à l'origine de cette fonction peut retourner false si c'est juste RVB.
Deuxièmement, j'ai fait une variante sur @ambientlight est la réponse que l'API juste un peu plus lisse. Vous pouvez régler 1 ou toutes les propriétés.
Vous pouvez utiliser cette méthode en définissant les valeurs suivantes
UIColor *customColor = [UIColor colorWithHue: x.xx saturation: x.xx brightness: x.xx alpha: 1.0];
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIColor_Class/Reference/Reference.html
Il n'y est une fonction de classe avec
colorWithHue:saturation:brightness:alpha:
Bien sûr, vous pouvez tout d'abord utiliser
getHue:saturation:brightness:alpha:
avant de faire des changements quand vous init avec[UIColor redColor]
UIColor ne pouvez pas modifier la saturation/teinte/brigthness,vous pouvez vous CoreImage.
Un exemple de code ci-dessous:
Si vous avez une question à propos d'iOS , vous pouvez aller à http://weibo.com/iOSHomePage
et lettre pour moi.Ma complètement la capacité de réponse.
Dans les deux premières lignes, il décrit la taille de l'image et de l'image rect.
CGContextRef
est utilisé pour créer un contexte graphiques de base. Après que la ligne 5 est l'image que vous souhaitez appliquer la teinte et rect de l'image. Après que le mode de fusion de ce qui est important. Après que l'INTERFACE utilisateurcolorWithHue
dans lequel les valeurs de teinte, de la saturation, la luminosité et alpha sont passés. Pour obtenir un bon effet de donner 1.0 valeur de l'alpha. Et à la fin vous devez définiruicolor.create
bezerpath ou vous pouvez donner directement de l'cgcontextsetfill(context)
. À la fin de créerimageref
et de mettre cette image dansUIImage
. À la fin, comme toujours dans choreographics, la libérationCGImageRelease
de couverture de problèmes de mémoire.Vous pouvez simplement modifier cette option en
alpha désigne l'opacité de vue et elle varie de 0.0 - 1.0