逐渐从一种颜色移动到另一种颜色

时间:2014-09-30 16:54:58

标签: xcode photoshop

我有一个程序,我有一个滑块,当我向上或向下(向左或向右)移动时,颜色会逐渐变化。可悲的是,我无法做到这一点。我的颜色改变了,但它非常突然!我在单独的.png文件中有七种颜色的彩虹,当我滚动时,相应的一个出现了。我想知道是否有任何我能做的事情可以使颜色变形或相互融合,使交易看起来更加顺畅。

谢谢

更新

if(self.slider.value > 7 (
{
    self.label.text=@"red";
    //self.imgView.backgroundColor=[UIColor redColor];
    // self.imgView.backgroundColor=[UIColor colorWithPatternImage:@"redPicture"];
    self.view.backgroundColor=[UIColor colorWithRed:146 green:50 blue:146 alpha:1];

}

1 个答案:

答案 0 :(得分:1)

这将是一个普遍的答案,因为我不打算为你编写代码(尤其是因为我从未在我的生活中写过xcode的字母),但这应该让你走上正轨。

你想要一个连续的色彩范围,所以应该立即告诉你使用一系列if语句是错误的方法。相反,您应该通过直接使用滑块值进行数学计算来计算所需的颜色。

你没有告诉我你的滑块范围是什么以及它是否是离散的,所以为了这个答案的目的,让我们调用最低值min和最高值max,只是为了保留东西一般。所以你的总范围是max - min。让我们将滑块的值表示为此范围内的百分比;我们可以将其计算为(self.slider.value - min) / (max - min)。 (例如,对于从0到50的滑块,滑块值37为您提供(37-0)/(50-0) = 0.74。)

所以现在你应该有一个0到1之间的小数值,你可以沿Hue-Saturation-Value color scale映射。我不知道xcode是否直接使用HSV方法(this answer有一些可能有用的代码),但如果没有,那么convert HSV to RGB就很容易了。