在 Value 处停止 UISlider
我有一个 UISlider,我希望它停在某个值。这不是最大值,而是可以通过编程方式获得的数字。
示例:UISlider 的最大值为 100。停止值为 60。因此,用户不应该能够拖动超过 60。
我现在使用的方法是添加一个带有选择器功能的操作,在那里我会将值更改回停止位置。
[mySlider addTarget:self action:@selector(modifySliderValue) forControlEvents:UIControlEventValueChanged];
...
- (void)modifySliderValue{
if(mySlider.value > 60) {
mySlider.value = 60;
}
}
这效果不佳,因为滑块出现故障。它一直试图跳过 60 分,但看起来不太对劲。
实现这一目标的最佳方法是什么?
I have a UISlider and I want it to stop at a certain value. This is not the maximum, but a number that is available programmatically.
Example: UISlider has max value of 100. The stop value is 60. Therefore, the user shouldn't be able to drag beyond 60.
The method I'm using right now is to add an action with a selector function, and there I would change the value back to the stopped position.
[mySlider addTarget:self action:@selector(modifySliderValue) forControlEvents:UIControlEventValueChanged];
...
- (void)modifySliderValue{
if(mySlider.value > 60) {
mySlider.value = 60;
}
}
This doesn't work well as the slider appears glitchy. It keeps trying to skip past the 60 mark and it doesn't look right.
What is the best way to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通过使用 UIControlEventAllEvents 而不是 UIControlEventValueChanged 找到了一个简单的解决方案。
I found an easy solution by using UIControlEventAllEvents instead of UIControlEventValueChanged.