根据 UISlider 位置快速移动视图的正确方法是啥?

Posted

技术标签:

【中文标题】根据 UISlider 位置快速移动视图的正确方法是啥?【英文标题】:What is the proper way to move view according to UISlider position in swift?根据 UISlider 位置快速移动视图的正确方法是什么? 【发布时间】:2020-02-20 19:15:20 【问题描述】:

我在屏幕上有一个垂直视图和一个垂直滑块,它们彼此相邻。它们的大小几乎相同。我希望这个视图根据滑块的位置移动。我正在尝试这种方式:

if oldValue < Int(sender.value) 
        viewToMoveTopYConstreint.constant = viewToMoveTopYConstreint.constant - heightOfMovement
        oldValue = Int(sender.value)
     else if oldValue > Int(sender.value) 
        viewToMoveTopYConstreint.constant = viewToMoveTopYConstreint.constant + heightOfMovement
        oldValue = Int(sender.value)
    

heightOfMovement 是移动我的视图的价值 - 例如。 5分

如果我缓慢移动滑块,视图会非常准确地移动,但如果我快速移动,视图会移动,就像我只更改了一个值而不是二十个一样。

我知道我可以尝试使用“for in”来完成,但我想知道是否有更熟练的方法来做到这一点。

【问题讨论】:

【参考方案1】:

我认为问题在于您没有使用滑块value 属性,而是只添加了一些heightOfMovement(除了您之外没有人知道这个值的来源)。

我认为以下内容会更直接:

viewToMoveTopYConstreint 重命名为viewToMoveTopYConstraint(只是拼写错误:-) 将滑块的minValue设置为0 将滑块的maxValue 设置为要移动的视图的高度 在您的 @IBAction 中执行以下操作:
    viewToMoveTopYConstraint.constant = sender.value

【讨论】:

以上是关于根据 UISlider 位置快速移动视图的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在更改其嵌套的 UILabel 时移动 UIView 会导致视图跳回初始位置

UISlider 调整以匹配 UITextField 值

在drawRect:方法中获取UISlider的当前值

转到 UISlider 的点击位置

删除 UISlider 旋钮或快速更改图像

如何将 UISlider 从自定义类文件中移动到某个位置