gpt4 book ai didi

ios - 如何延迟 iOS 中 UISlider 的开始触摸事件?

转载 作者:搜寻专家 更新时间:2023-11-01 07:08:27 24 4
gpt4 key购买 nike

在我的应用程序中,有一个 UISlider 只能在长按后滑动(比方说,在按下 0.1 秒后)。为了防止 slider 立即交互,我将 mySlider.isUserInteractionEnabled = false 设置为默认值。然而,由于 .isUserInteractionEnabled 将禁用所有功能,包括长按手势,我使用另一个透明的 UIButton 与它顶部的 slider 大小相同检测长按,并在回调操作中设置 mySlider.isUserInteractionEnabled = true。这工作正常,除了必须先释放 UIButton 然后用户再次点击 slider 以滑动它而不是直接在同一触摸中拖动 slider 。这使得 slider 使用起来非常不方便。因此,我想知道是否:

  1. 有比我更好的方法让 UISlider 仅在一定延迟后才开始滑动吗?我很惊讶我找不到任何解决方案。我认为这是将 slider 锁定在某个点的常见需求。

  1. 按照我的解决方案,有没有什么方法可以让我在同一次触摸中开始拖动 slider 拇指?

非常感谢任何类型的回答。

添加:我的解决方案如下所示:在TableViewCell 中,有一个标签、一个 slider 和一个与 slider 大小相同的不可见按钮(灰色背景区域)。我设置 slider 属性 isUserInteractionEnabled == false,然后添加手势识别器来操作 slider (例如单击、双击我的自定义功能,以及启用 slider 的长按手势)。长按按钮后, slider 的 isUserInteractionEnabled 将设置为 true,直到拇指转到新值。

基本上我只想禁用 slider 对短按的响应太快, slider 的其他功能将保持不变。我想可能有更好的方法来实现这一点,到目前为止,使用透明按钮是我能想到的唯一方法。

enter image description here

最佳答案

您可以禁用 slider 上的用户交互,然后在其上添加一个手势识别器(虽然不完全确定用户交互)。也许做这样的事情

let longPress = UILongPressGestureRecognizer(target: self.slider, action: Selector("longPressAndSlide:"))
longPress.minimumPressDuration = 0
self.addGestureRecognizer(longPress)

longPressAndSlide 中,您可以计算移动的方向和增量,并相应地设置 slider 的值。

这实际上已经回答了多次。只有更好的搜索才能为您提供更多帮助。

更新检查答案 - How to enable "tap and slide" in a UISlider?

最新更新正如评论所建议的那样,我们可以在 slider 顶部添加一个按钮并在其上添加长按手势。可以在手势的处理程序 Action 中完成处理。

关于ios - 如何延迟 iOS 中 UISlider 的开始触摸事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46598389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com