如何将 UISlider 的值显示为整数

Posted

技术标签:

【中文标题】如何将 UISlider 的值显示为整数【英文标题】:How to show value of UISlider as Integer 【发布时间】:2009-12-02 04:15:51 【问题描述】:

UISlider 的值当前显示为浮点数。如何将其显示为整数?

sliderCtl = [[UISlider alloc] initWithFrame:frame];
    sliderCtl.minimumValue = 1;
    sliderCtl.maximumValue = 15;
    sliderCtl.continuous = NO;
    sliderCtl.value = 1;
    [sliderCtl setShowValue:YES];

【问题讨论】:

【参考方案1】:

如果你想让你的滑块捕捉到不同的整数值,你可以在你的 valueChanged 函数中使用这样的东西:

-(IBAction)valueChanged:(UISlider*)sender 
    int discreteValue = roundl([sender value]); // Rounds float to an integer
    [sender setValue:(float)discreteValue]; // Sets your slider to this value

这将在您松开手指后根据两个数字之间的距离将滑块对齐到 1,2,...,15 等值。例如,如果您在 2.4 时释放滑块,它会弹回 2,而在 2.6 时它会弹回 3。

【讨论】:

roundtl 在 ios 中似乎不存在。然后 Xcode 巧妙地建议“roundl”,它也不存在。 感谢您的提醒。我已经相应地更新了我的答案以使用我刚刚测试过的函数 roundl()。奇怪的是,我之前的回答当时奏效了…… 看起来这在 Xcode 4.5 中再次起作用 - 我让它正常工作,唯一的变化是它会在用户仍在使用它时捕捉 - 拇指不会移动,直到用户拖动它到下一个值。 一点更正:int discrictionValue = roundl([(UISlider*)sender value]); 在这种情况下不需要 UISlider-cast,因为它已经设置为 IBAction 的发送者参数类型。如果类型是“id”,那将是有意义的;-)【参考方案2】:

您可以截断或舍入滑块中的值,然后对其进行更新以向用户提供有关更改的反馈(当用户释放时,它似乎与整数值对齐)。

【讨论】:

以上是关于如何将 UISlider 的值显示为整数的主要内容,如果未能解决你的问题,请参考以下文章

uislider:打开预览图片,如杂志应用

如何将 iOS 滑块值限制为整数?

Swift:将 UISlider 捕捉到最接近的值

根据 UISlider 值不断更新标签

目标 C - 如何使用按钮单击操作更改 UIslider 值

限制滑动 UISlider 超过某个点