![](/img/trans.png)
[英]How to set NSSlider value in a NSToolbar - Swift Cocoa + Storyboard
[英]How to animate NSSlider value change in Cocoa application using Swift
如何為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來擦洗電影的視頻播放器。 視頻繼續播放時,該滑塊也應移動。 就像我說的那樣,它確實可以移動,但是我無法使其平穩移動。
在Objective-C中有一個Apple示例代碼可以滿足您的實際需求。 下面是在Swift中的外觀。
基本上,您需要在NSSlider上進行擴展
extension NSSlider {
override open class func defaultAnimation(forKey key: NSAnimatablePropertyKey) -> Any?{
if key == "floatValue"{
return CABasicAnimation()
}else {
return super.defaultAnimation(forKey: key)
}
}
}
然后,您可以在移動滑塊功能中簡單地使用類似的內容。
private func moveSlider(videoTime: Float) {
NSAnimationContext.beginGrouping()
NSAnimationContext.current.duration = 0.5
slider.animator().floatValue = videoTime
NSAnimationContext.endGrouping()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.