2014-03-03 1 views
2

UISlider에서 터치를 해제하면 슬라이더의 값이 약간 변경 될 수 있습니다. 너무 민감하기 때문에 화면에서 손가락을 떼면 변경됩니다. 사용자가 문제없이 원하는 값을 설정할 수 있도록하려면 어떻게해야합니까? 당신은 모든 이벤트를 등록하는터치를 놓을 때 UISlider가 너무 민감합니다.

UISlider *slider = [[UISlider alloc] initWithFrame: CGRectMake(100.0, 100.0, 200.0, 40.0)]; 
slider.minimumValue = 0.0; 
slider.maximumValue = 100.0; 
[slider addTarget: self action: @selector(sliderChanged:event:) forControlEvents:UIControlEventAllEvents]; 
[slider setValue: 50.0 animated: NO]; 
+1

시도해보십시오. http://stackoverflow.com/questions/11324359/how-can-i-control-uislider-value-changed-events-frequncy 도움이 되길 바랍니다. – ChenSmile

답변

5

:

그건 내가 UISlider를 만드는 방법입니다. 단지

[slider addTarget: self action: @selector(sliderChanged:event:) forControlEvents: UIControlEventTouchDragInside]; 
+0

감사합니다! 이것은 올바른 이벤트를 얻기 위해서만 효과가있는 것 같습니다. 그러나 낮은 레벨에서 슬라이더의 실제 가치는 여전히 터치 엔드에서 변경됩니다. 그렇습니까? 내가 값을 읽을 때 나는 보내지는 값과 다를 것입니다. value 속성이 touch end에서 변경되지 않도록하는 방법이 있습니까? – Max

+0

나는 그걸 좀 더 연주했지만 아직도 너무 과민하다고 느낍니다. 덜 민감하게 만들 수있는 방법이 있습니까? 손가락을 들어 올리면 종종 피할 수있는 touchMoved가 트리거됩니다. 손가락을 똑바로 들어 올리는 것은 불가능합니다. 그러나 사용자에게는 이것이 의도하지 않은 값을 변경합니다. – Max

1

처럼 이벤트를 확인하면이 대신로 변경합니다 : 당신이 원하는 모든 손가락이 해제 된 경우에만 목표를 실행하는 경우

[slider addTarget: self action: @selector(sliderChanged:event:) forControlEvents: UIControlEventValueChanged]; 

그리고

은의 continuous 속성을 설정하려고 UISlider ~ NO

+0

응답 주셔서 감사하지만 다른 대답은 정확히 내가 무엇을 찾고 있었는지 :) – Max

관련 문제