Как правильно перемещать вид в соответствии с положением UISlider в swift? - PullRequest
0 голосов
/ 20 февраля 2020

У меня вертикальный вид и вертикальный ползунок на экране рядом друг с другом. Они имеют почти одинаковый размер. Я хочу, чтобы этот вид перемещался в соответствии с положением слайдера. Я пытался так:

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 Ответ

1 голос
/ 20 февраля 2020

Я думаю, что проблема в том, что вы не используете свойство sliders value, а вместо этого добавляете только немного heightOfMovement (никто, кроме вас, не знает, откуда это значение).

Я думаю, что следующее будет более простым:

  • переименовать viewToMoveTopYConstreint в viewToMoveTopYConstraint (просто орфографическая ошибка: -)
  • установить minValue ползунка в 0
  • установите maxValue ползунка на высоту перемещаемого вида
  • в вашем @IBAction, просто сделайте следующее:
    viewToMoveTopYConstraint.constant = sender.value
...