Как предотвратить жесты касания в определенной области в ScrollView SwiftUI?IOS

Программируем под IOS
Ответить
Anonymous
 Как предотвратить жесты касания в определенной области в ScrollView SwiftUI?

Сообщение Anonymous »

Сейчас я работаю над переходом на SwiftUI. Из-за связей с другими контроллерами представления я использую для этой задачи UIHostingViewController, но у меня есть одна большая проблема.
На некоторых экранах я использую пользовательскую панель навигации, поэтому я не использую панель навигации SwiftUI. в представлении SwiftUI. Вместо этого я создаю и отображаю пользовательскую панель навигации в хост-контроллере представления.
Проблема заключается в том, что кнопка «Назад» этой пользовательской панели навигации перекрывается с представлениями элементов, созданными с использованием SwiftUI List. Когда я нажимаю кнопку «Назад», срабатывает onTapGesture, прикрепленный к представлению элемента, и действие кнопки «Назад» игнорируется. Несмотря на то, что панель навигации находится на вершине иерархии представлений, это все равно происходит.
Есть ли в SwiftUI способ отключить события касания в определенной области, чтобы, когда панель навигации перекрывалась с элемент просматривается, срабатывает только кнопка "Назад"?
var body: some View {
ZStack {
ScrollView {
VStack(alignment: .leading, spacing: 0) {
ForEach(
state.component.sections.compactMap({ $0 as? (any SwiftUISection) }),
id: \.id
) { section in
section.view
/// section.view has its own tap gesture ///
}
}
.edgesIgnoringSafeArea(usingRoundNaviBar ? .top : [])
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... scrollview
Ответить

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

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

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

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

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