gpt4 book ai didi

swift - 如何使用 Swift 在 Cocoa 应用程序中动画 NSSlider 值变化

转载 作者:行者123 更新时间:2023-12-03 17:09:04 24 4
gpt4 key购买 nike

如何制作 NSSlider 值变化的动画,使其看起来连续?我尝试使用 NSAnimation 上下文

  private func moveSlider(videoTime: VLCTime) {
DispatchQueue.main.async { [weak self] in
NSAnimationContext.beginGrouping()
NSAnimationContext.current.duration = 1
self?.playerControls.seekSlider.animator().intValue = videoTime.intValue
NSAnimationContext.endGrouping()
}
}

我的 NSSlider 仍然移动不顺畅。

为了让您了解图片,我正在尝试制作一个视频播放器,它使用 NSSlider 来浏览电影。该 slider 也应该随着视频的播放而移动。正如我所说,它确实会移动,但我无法让它顺利移动。

最佳答案

有一个Apple sample code在 Objective-C 中,正是您正在寻找的东西。下面是它在 Swift 中的样子。

基本上你需要 NSSlider 上的扩展

extension NSSlider {

override open class func defaultAnimation(forKey key: NSAnimatablePropertyKey) -> Any?{

if key == "floatValue"{
return CABasicAnimation()
}else {
return super.defaultAnimation(forKey: key)
}
}
}

然后你可以简单地在你的移动 slider 函数中使用类似的东西。

private func moveSlider(videoTime: Float) {

NSAnimationContext.beginGrouping()
NSAnimationContext.current.duration = 0.5
slider.animator().floatValue = videoTime
NSAnimationContext.endGrouping()

}

关于swift - 如何使用 Swift 在 Cocoa 应用程序中动画 NSSlider 值变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54245295/

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