更新值时 UISlider 卡顿

问题描述

我正在创建一个音频播放器并使用 UISlider 实时更新音频的播放时间。我决定使用周期性时间观察者来做到这一点:

player.addPeriodicTimeObserver(forInterval: CMTime(seconds: 1,preferredTimescale: CMTimeScale(NSEC_PER_SEC)),queue: .main) { time in
    slider.setValue(Float(time.seconds),animated: false)
}

这是一个好的开始,但是我遇到了一个问题,当我尝试使用滑块更改/寻找时间时会触发(可以理解),因此我将其更改为:

player.addPeriodicTimeObserver(forInterval: CMTime(seconds: 1,queue: .main) { time in
    if !slider.isHighlighted {
        slider.setValue(Float(time.seconds),animated: false)
    }
}

这很棒,但我面临的最后一个问题是,当我松开滑块时,它似乎很快将滑块值设置回设置新值之前的值,然后快速修复自身。见下图:

enter image description here

再次澄清一下,它是这样的我一松开,而不是在我试图滑动时

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)