http://imgur.com/XHMBUdj

Это изображение выше - то, чего я пытаюсь достичь. У меня есть готовый дизайн, но функция жестов панорамирования еще не завершена. Я бы хотел, чтобы пользователь скользил вверх и вниз, чтобы регулировать уровни каждого столбца. Я хотел бы обозначить половину экрана (разделенную по вертикали) для синих полосок, а другую половину - для красных. Если пользователь перемещает палец вверх в правой части экрана, красные полосы увеличиваются, а синие полосы уменьшаются (под уменьшением я имею в виду «исчезновение полос»). То же самое работает, если пользователь проводит пальцем вверх с левой стороны. Также происходит обратное, если пользователь перемещает палец вниз, полосы уменьшаются на той стороне, которую он перетаскивает, а на другой стороне увеличиваются.

Не могли бы вы дать мне отзыв о том, как я могу подойти к этому дизайну. Будем очень признательны за письменный код или код sudo !!

Спасибо !!!

Nadal Alyafaie

Ответов: 1

Ответы (1)

Добавьте UIPanGestureRecognizer к обеим полосам, а затем просто отрегулируйте значения полос в зависимости от движения. Конечно, сначала нужно увидеть, какая полоса находится за точкой, с которой начался жест. Полосы могут быть растровыми изображениями или UIBezierPaths. Чтобы изменения выглядели плавными, просто анимируйте скрытие / отображение полос (изменение цвета или альфа). Более подробный образец будет означать выполнение работы за вас, поэтому вам просто нужно выяснить остальное самостоятельно.

let panGesture = UIPanGestureRecognizer(target: self, action: Selector("onPan:"))
barBackgroundView.addGestureRecognizer(panGesture)

func onPan(gestureRecognizer: UIPanGestureRecognizer) {
    let point = gestureRecognizer.locationInView(barBackgroundView)

    switch gestureRecognizer.state {
        case .Began:
            panStartPoint = point
        case .Changed:
            // Adjust the bars using panStartBarPoint.y + (point.y - panStartPoint.y)
    }
}

2022 WebDevInsider