更改滑块最大值的动画

Posted

技术标签:

【中文标题】更改滑块最大值的动画【英文标题】:Animate changing a slider's maximum value 【发布时间】:2019-01-10 18:20:10 【问题描述】:

我试图在设置新的最大值时为滑块设置动画。我设置了最大值,如下:

您可能对为什么会有 .slider 属性感到困惑 - 这是我自己的自定义类。

fingerSizeSlider.slider.maximumValue = Float(newValue) + 0.99

我尝试过使用UIView.animate,但它不起作用,我无法执行以下操作:

fingerSizeSlider.slider.setValue(fingerSizeSlider.slider.value, animated: true)

滑块滑块自动移动(这很好)但它没有动画,直接上面的代码行没有效果(因为很明显,我设置为相同的值)。

如何为滑块的 maximumValue 属性设置动画?

Here is a video to illustrate the issue (a gif is too choppy).

【问题讨论】:

【参考方案1】:

滑块使用私有子视图绘制自己。您需要为这些子视图的布局设置动画。

UIView.animateWithDuration(0.2) 
   fingerSizeSlider.slider.maximumValue = Float(newValue) + 0.99
   fingerSizeSlider.slider.layoutIfNeeded() 

【讨论】:

我需要的完美快速答案,我会尽可能接受! :)

以上是关于更改滑块最大值的动画的主要内容,如果未能解决你的问题,请参考以下文章

使用 setOptions 动态更改属性后剑道滑块的问题

是否可以根据其他表单的输入来更改 HTML5 范围滑块的最小值和最大值?

设置最小值或最大值后如何刷新 jQuery UI 滑块?

如何借助 iOS Swift 中的滑块更改标签的值?

根据计算的值 [Swift] 使用滑块更改 TextField 中的值

单击表格行时更改 UISlider 控制器