gpt4 book ai didi

iphone - 在UIKit中,如何检测UISlider何时停止移动但尚未释放

转载 作者:行者123 更新时间:2023-12-03 19:15:22 25 4
gpt4 key购买 nike

我有一个声音效果,我只想在 slider 移动时播放。

目前,当 UISlider 发送 Value Changed 事件时,我会触发 playSound 方法。

我需要一种方法来检测 slider 何时未移动但尚未释放。

我想我可以使用它的父类(super class)的控制事件来计算时间,但我不知道如何检测它们。

有什么想法吗?

最佳答案

如果我理解正确的话,只要触摸 slider ,无论它是否移动,您都希望继续播放声音。为此,请将一种方法注册为 UIControlEventTouchDown(可能还包括 UIControlEventTouchDragInside)事件的目标,并将另一种方法注册为 UIControlEventTouchDragExit/TouchUpOutside/TouchUpInside/TouchCancel 某种组合的目标(具体取决于您的需要)。第一个方法开始播放声音,第二个方法停止播放。

如果您想在 slider 仍被触摸但未移动时播放另一种声音,我建议您在每次收到 TouchDown/ValueCahanged/etc 事件时启动计时器:

self.touchTimer = [NSTimer scheduledTimerWithTimeInterval: kDelay
target:self
selector:@selector(noMovement:)
userInfo:nil
repeats:NO];

然后,每当您收到另一个 ValueChanged 事件时,您就会取消计时器并触发另一个计时器(或者更好的是重新安排原始计时器)。当计时器触发时,这意味着用户自 kDelay 以来没有移动 slider ,并且您可以更改正在播放的声音。 (当您也收到 TouchUpInside/Outside 事件时,您需要取消计时器。)

关于iphone - 在UIKit中,如何检测UISlider何时停止移动但尚未释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/954498/

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