Как запустить анимацию в начале длинного нажатия? - PullRequest
0 голосов
/ 21 апреля 2020

Название говорит само за себя :)

У меня есть dragGesture в пределах scrollview. Мне удалось управлять этим путем объединения longpressGesture перед перетаскиванием, чтобы кнопка не была случайно активирована при прокрутке пользователя. Но я хотел бы добавить некоторую визуальную подсказку после того, как longpress начал работать, чтобы пользователь знал, что эта вещь активна, если вы продолжаете нажатие.

Вот мой код, он довольно стандартный. Мне не удалось найти начальное событие длинного нажатия.

.frame(maxWidth: .infinity).background(Color .white)
.onTapGesture {}
.gesture(
    LongPressGesture(minimumDuration: self.minimuDuration, maximumDistance: 0)
        .updating(self.$isLongPressed) { value, state, transcation in
                state = value
        }.sequenced(before:
        DragGesture(minimumDistance: 0, coordinateSpace: .global)
            .onEnded({ (value) in })
            .onChanged { value in }
    )

)

1 Ответ

1 голос
/ 22 апреля 2020

Как только жест длинного нажатия обнаружит вас, self.$isLongPressed сработает, так что это ваш флаг для визуальной анимации обратной связи. Например:

.frame(maxWidth: .infinity).background(Color.white.opacity(self.isLongPressed ? 0.5 : 1.0)
.animation(.default)
.onTapGesture {}
.gesture(
    LongPressGesture(minimumDuration: self.minimuDuration, maximumDistance: 0)
        .updating(self.$isLongPressed) { value, state, transcation in
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...