Программная передача сенсорных жестов в SwiftUI ⇐ IOS
-
Anonymous
Программная передача сенсорных жестов в SwiftUI
Привет
Итак, у меня есть следующий код:
ZStack { MapView() ВСтек { ПрокруткаView { Spacer(minLength: viewHeight * 0,7) ГлавнаяПросмотрСписокЗаказов() .id("Просмотр списка") .cornerRadius(10) .ignoresSafeArea() .frame(ширина: g.size.width, высота: g.size.height, выравнивание: .center) } .scrollBounceBehavior(.basedOnSize, оси: .vertical) } Код объявляет Mapview а затем поверх него создается VStack с разделителем и списком, который начинается внизу экрана.
Теперь я хочу передавать жесты всякий раз, когда они выполняются в области ScrollViews, где есть разделитель. Таким образом, пользователь может легко манипулировать картой. Но всякий раз, когда пользователь касается области, где у меня есть ListView, прикосновение должно распространяться вперед на MapView за прокруткой.
В UIKit мы могли бы легко сделать это, прагматично проверив, что это был за жест, и отреагировать на него или распространить его на подпредставления. Но как мне это сделать в SwiftUI?
Удачи!
Исправить
Так что эта вещь сама по себе невыполнима. Но, как отметил в комментариях @lorem ipsom, вы можете сделать нечто подобное, выполнив следующие действия:
[*]Создайте таблицу, которую нельзя закрыть [*]Представьте [*]Включить взаимодействие для просмотра позади [*]Ограничьте размер листа с помощью фиксаторов.
Как выглядит мой новый код:
ZStack { MapView() .sheet(isPresented: $presentSheet) { ГлавнаяПросмотрСписокЗаказов() .id("Просмотр списка") .ignoresSafeArea() .presentationDetents([.height(viewHeight * 0,7), .height(viewHeight * 0,1)]) .interactiveDismissDisabled() .presentationBackgroundInteraction( .enabled(upThrough: .height(viewHeight * 0,1)) ) } } Извините за неправильные отступы. Я не знаю, почему отступы портятся, когда я копирую код из xcode в редактор здесь.
Привет
Итак, у меня есть следующий код:
ZStack { MapView() ВСтек { ПрокруткаView { Spacer(minLength: viewHeight * 0,7) ГлавнаяПросмотрСписокЗаказов() .id("Просмотр списка") .cornerRadius(10) .ignoresSafeArea() .frame(ширина: g.size.width, высота: g.size.height, выравнивание: .center) } .scrollBounceBehavior(.basedOnSize, оси: .vertical) } Код объявляет Mapview а затем поверх него создается VStack с разделителем и списком, который начинается внизу экрана.
Теперь я хочу передавать жесты всякий раз, когда они выполняются в области ScrollViews, где есть разделитель. Таким образом, пользователь может легко манипулировать картой. Но всякий раз, когда пользователь касается области, где у меня есть ListView, прикосновение должно распространяться вперед на MapView за прокруткой.
В UIKit мы могли бы легко сделать это, прагматично проверив, что это был за жест, и отреагировать на него или распространить его на подпредставления. Но как мне это сделать в SwiftUI?
Удачи!
Исправить
Так что эта вещь сама по себе невыполнима. Но, как отметил в комментариях @lorem ipsom, вы можете сделать нечто подобное, выполнив следующие действия:
[*]Создайте таблицу, которую нельзя закрыть [*]Представьте [*]Включить взаимодействие для просмотра позади [*]Ограничьте размер листа с помощью фиксаторов.
Как выглядит мой новый код:
ZStack { MapView() .sheet(isPresented: $presentSheet) { ГлавнаяПросмотрСписокЗаказов() .id("Просмотр списка") .ignoresSafeArea() .presentationDetents([.height(viewHeight * 0,7), .height(viewHeight * 0,1)]) .interactiveDismissDisabled() .presentationBackgroundInteraction( .enabled(upThrough: .height(viewHeight * 0,1)) ) } } Извините за неправильные отступы. Я не знаю, почему отступы портятся, когда я копирую код из xcode в редактор здесь.
Мобильная версия