Сейчас я работаю над переходом на 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
Как предотвратить жесты касания в определенной области в ScrollView SwiftUI? ⇐ IOS
Программируем под IOS
1737339991
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 : [])
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79370165/how-to-prevent-tap-gestures-in-a-specific-area-in-swiftuis-scrollview[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия