我正在努力让我的按钮的背景颜色随着滑块到达某个点而改变。当我的滑块值达到1时,我希望背景颜色从橙色变为蓝色,但是现在只有按下按钮才会改变颜色。请帮助:)
这就是我现在所拥有的:
- (IBAction)buttonChange:(id)sender {
if ([_statuslabel.text isEqualToString:@"Temperature: 1"]) {
[_myButton setBackgroundColor: [UIColor blueColor]] ;
答案 0 :(得分:1)
要不断更改按钮颜色,可以使用以下代码:
- (IBAction)sliderValueChanged:(UISlider *)sender
{
CGFloat blueHue = 232.0f; // should be kind of blue
CGFloat orangeHue = 32.0f; // should be kind of orange
CGFloat resultingHue = ((blueHue - orangeHue)) * sender.value + orangeHue;
self.yourButton.backgroundColor = [UIColor colorWithHue:resultingHue / 360.0f
saturation:1
brightness:1
alpha:1];
}
只需在UISlider
中关联IB
,然后为sliderValueChanged:
事件设置Value Changed
方法。
使用HSV(http://en.wikipedia.org/wiki/HSL_and_HSV)模型应该是存档所需内容的最简单的解决方案。
希望这有帮助
答案 1 :(得分:0)
根据我对您的问题的解释,您正在使用UISlider并在touchupinside上调用此函数。
要连续更新它,请实现valuechanged函数
-(IBAction)sliderValueChanged:(UISlider*)slider {
if (slider.value > 0.5)
slider.backgroundColor = [UIColor blueColor];
else
slider.backgroundColor = [UIColor orangeColor];
}
然后在界面构建器中将此连接到滑块“Value Changed”插座