2013-11-15 73 views
0

在UISlider控制中,如果我設置了"MinimumValue = 0" & "MaximimValue=2000",那麼我無法設置確切的值。在釋放滑塊縮略圖時,它將值更改爲+ or - 5 to10。我的滑塊width = 225pxiPhone中的UISlider限制

例如: - 如果我嘗試將滑塊值設置爲100,則在釋放滑塊縮略圖時,它會顯示像105 or 95這樣的結果。


Code

IBOutlet UISlider * slider; 

//"Slider" Object attached using XIB(.NIB) 

slider.minimumValue = 0; 
slider.maximumValue = 100; 

//Attached Below Method Using XIB(.NIB) with "value Changed" event. 

-(IBAction)slider_Change:(id)sender; 
{ 

//Assigning value to UITextField 
    textFiled.text = [NSString stringWithFormat:@"%d",(((int) (slider.value)) * 20)]; 
} 

enter image description here

+1

顯示您的滑塊代碼 – user2277872

+0

@ user2277872我在那裏添加了代碼。 – Ketan

回答

0

因爲你已經設置你的滑塊範圍是如此之大屏幕上的每個像素相當於8.888。

2000/255 = 8.8888888889 

要獲得1的刻度,您需要移動像素的1/8像素(這是不可能的)。

替代品有:

  1. 使滑塊不再
  2. 減少滑塊範圍
  3. 使用不同的控制UIStepper
+0

感謝您的回答。替代品(1)和(2)我不能這樣做,因爲它的要求。你認爲我可以使用其他任何UI方式嗎? – Ketan

0

除了由@rjstelling答案,似乎如果您嘗試將滑塊的值轉換爲整數值。我相信滑塊的默認值是一個double值,這會導致該值隨着它的增加而變圓,因爲不會有十進制值。除非這是一項要求,否則請參閱是否可以使用double。

textFiled.text = [NSString stringWithFormat:@"%f",(slider.value * 20.0)]; 

,或者如果由於某種原因,你會希望限制小數位的水平,你可以去,你可以這樣做:

textField.text = [NSString stringWithFormat:@"%.1f", slider.value * 20.0]; 

這會給你像1.5的小數作爲的結果你的答案。

你可以做任何事情與小數,甚至做這樣的事情%1.2F,%4.3f,甚至%10.4f,

那些會產生類似的結果:0.34,0012.446,和極端的東西像000000345.1111

希望這可以幫助