Проведение вверх от нижней части экрана (для переключения приложений) непреднамеренно запускает DragGesture другого объеIOS

Программируем под IOS
Ответить
Anonymous
 Проведение вверх от нижней части экрана (для переключения приложений) непреднамеренно запускает DragGesture другого объе

Сообщение Anonymous »

Речь идет о SwiftUI.
У меня есть объект с прикрепленным к нему DragGesture, который расположен в самом низу экрана в iOS — чуть выше безопасной области с дескриптором переключения приложений. Жест перетаскивания должен срабатывать только при перетаскивании изнутри объекта + области в пару пикселей вокруг него, как и ожидалось. Он правильно не срабатывает при перетаскивании за пределы объекта (слева, справа, сверху), но когда я пытаюсь переключить приложения, проводя вверх по ручке главного экрана в нижней части экрана, срабатывает жест перетаскивания. Пожалуйста, посмотрите код и анимацию. Как мне избавиться от такого поведения?
Я везде искал ответ на этот вопрос, но безуспешно. Я пытался специально задать область, которая должна реагировать на жест, но тоже безрезультатно. Перетаскивание вверх от ручки главного экрана заставляет iOS думать, что после того, как палец покинул безопасную зону, пользователь коснулся объекта, вызвавшего жест. Хотя они ни разу не подняли палец после прикосновения к экрану. Этот жест не должен активироваться смахиванием вверх, это нежелательное поведение.
Спасибо за помощь.
https://i.sstatic.net/4hvgubwL.gif
import SwiftUI

struct ContentView: View {
@State var offset = CGSize.zero
@State var color = Color.green

var body: some View {
Spacer()
Circle()
.fill(color)
.frame(width: 64, height: 64)
.offset(offset)
.gesture (
DragGesture(minimumDistance: 0)
.onChanged { value in
color = .red
offset = value.translation }
.onEnded { _ in
color = .green
offset = .zero
}
)
}
}

#Preview {
ContentView()
}```


Подробнее здесь: https://stackoverflow.com/questions/787 ... lly-trigge
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»