在 Value 处停止 UISlider

发布于 2024-12-13 00:23:37 字数 465 浏览 0 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

∞琼窗梦回ˉ 2024-12-20 00:23:37

我通过使用 UIControlEventAllEvents 而不是 UIControlEventValueChanged 找到了一个简单的解决方案。

I found an easy solution by using UIControlEventAllEvents instead of UIControlEventValueChanged.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文