2013-09-25 1 views
0

현재 내 슬라이더가 특정 지점에 도달하면 내 단추의 배경색을 변경하는 데 어려움을 겪고 있습니다. 슬라이더 값이 하나가되면 배경색이 주황색에서 파란색으로 바뀌길 원하지만, 지금 버튼을 누르면 색상이 변경됩니다.슬라이더를 움직이면 버튼의 배경색을 어떻게 변경합니까?

귀하의 질문에 대한 나의 해석에서
- (IBAction)buttonChange:(id)sender { 
if ([_statuslabel.text isEqualToString:@"Temperature: 1"]) { 
    [_myButton setBackgroundColor: [UIColor blueColor]] ; 
+0

당신이 변화는 점진적이나 갑작스러운되고 싶어하는 데 도움이? – LuisCien

+1

슬라이더의 값 변경을 처리하는 방법을 알고 있습니까? – rmaddy

+0

자세한 정보를 제공해주십시오. UISlider를 사용하고 있습니까? 제공된 코드에서 레이블의 텍스트를 확인하고 있습니다. 어떻게 텍스트를 업데이트합니까? 자세한 내용을 제공하면 내 대답을 편집합니다. – Jack

답변

0

, 당신이 UISlider를 사용하고 touchupinside에이 함수를 호출 :

:)하시기 바랍니다 도움이 내가 현재 가지고있는 것입니다.

가 지속적으로 업데이트하려면 , 당신의 버튼의 일정한 변화가 당신이 사용할 수있는 색상을 얻기 위해 "값이 변경"슬라이더 출구

+0

코드를 입력 했으므로 코드를 올바르게 수행했습니다. 당신은 큰 도움이되었습니다. 감사합니다. – user2816600

1

이 연결 인터페이스 빌더에서 그 다음의 valueChanged 기능

-(IBAction)sliderValueChanged:(UISlider*)slider { 
    if (slider.value > 0.5) 
     slider.backgroundColor = [UIColor blueColor]; 
    else 
     slider.backgroundColor = [UIColor orangeColor]; 
} 

를 구현 이 코드 :

- (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]; 
} 

그냥 UISliderIB에 연결하고 sliderValueChanged:미터 설정 Value Changed 이벤트의 경우

HSV (http://en.wikipedia.org/wiki/HSL_and_HSV) 모델을 사용하면 원하는 것을 보관하는 가장 쉬운 방법입니다.

희망이

+0

안녕하세요, 훌륭한 코드입니다. 하지만 여기에 의심의 여지가 : self.yourButton.backgroundColor UIButton에 대한 즉각적인 변경을 일으킬 충분합니까? 나도 몰라,하지만 UIButton을 만든 후에 변경하는데 어려움을 겪었습니다. – Unheilig

+0

물론, 코드를 테스트 해보십시오. 그것은 당신에게 파란색에서 주황색으로 꾸준한 변화를 줄 것입니다. 한 색상에서 다른 색상으로의 단단한 절단뿐만 아니라 슬라이더 위치를 기반으로 한 지속적인 변경. 슬라이더 btw의 범위. 0..1 사이에 있어야합니다. 드래그하여 테스트 한 결과 버튼이 업데이트되었습니다. – Georg

관련 문제