s6l*_*A3I 12 iphone xcode uikit uicolor ios
让我们说我有一个UIColor
UIColor *color = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)
现在我想修改饱和度/色调/亮度,我该怎么做?我确实阅读了文档,但我仍然感到很困惑
我想修改我制作的UIColor([UIColor redColor])不会使用某些首选项启动新颜色.如何修改它保留原件.我知道这个colorWithHue:saturation:brightness:alpha:方法,我需要更新现有颜色的属性,保持红色.
nie*_*bot 20
您可以调用getHue:saturation:brightness:alpha:颜色,然后调整值,然后使用调整后的组件创建新颜色+[UIColor colorWithHue:saturation:brightness:alpha:]
CGFloat hue, saturation, brightness, alpha ;
BOOL ok = [ <color> getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha ] ;
if ( !ok ) {
// handle error
}
// ... adjust components..
UIColor * newColor = [ UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:alpha ] ;
Run Code Online (Sandbox Code Playgroud)
这是UIColor您可能会觉得有用的快速扩展:
extension UIColor {
func modified(withAdditionalHue hue: CGFloat, additionalSaturation: CGFloat, additionalBrightness: CGFloat) -> UIColor {
var currentHue: CGFloat = 0.0
var currentSaturation: CGFloat = 0.0
var currentBrigthness: CGFloat = 0.0
var currentAlpha: CGFloat = 0.0
if self.getHue(¤tHue, saturation: ¤tSaturation, brightness: ¤tBrigthness, alpha: ¤tAlpha){
return UIColor(hue: currentHue + hue,
saturation: currentSaturation + additionalSaturation,
brightness: currentBrigthness + additionalBrightness,
alpha: currentAlpha)
} else {
return self
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11378 次 |
| 最近记录: |