Ios IPhone中的UISlider限制
在UISlider控件中,如果我设置了Ios IPhone中的UISlider限制,ios,iphone,uislider,Ios,Iphone,Uislider,在UISlider控件中,如果我设置了“MinimumValue=0”和“MaximimValue=2000”,则无法设置准确的值。释放滑块拇指图像时,它会将值更改为+或-5到10。我的滑块宽度=225px 例如:-如果我尝试将滑块值设置为100,则在释放滑块拇指时,它会显示类似105或95的结果 code IBOutlet UISlider * slider; //"Slider" Object attached using XIB(.NIB) slider.minimumVal
“MinimumValue=0”和“MaximimValue=2000”
,则无法设置准确的值。释放滑块拇指图像时,它会将值更改为+或-5到10
。我的滑块宽度=225px
例如:-如果我尝试将滑块值设置为100
,则在释放滑块拇指时,它会显示类似105或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)];
}
因为您已将滑块范围设置得非常大,所以屏幕上的每个像素都相当于8.888
2000 / 255 = 8.8888888889
要获得1的刻度,您需要将滑块移动1/8像素(这是不可能的)
备选方案包括:
除了@rjstelling给出的答案外,似乎您正在尝试将滑块的值转换为整数值。我相信滑块的默认值是双精度值,这将导致值在增加时变为四舍五入,因为不会有十进制值。除非这是一项要求,否则请查看是否可以使用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.340012.446,以及类似000000345.1111的极端值
希望这有助于显示您为slider@user2277872我在那里添加了代码。谢谢你的回答。备选方案(1)和(2)我不能按要求执行。你认为我还可以使用其他UI方式吗?