Это очень распространенное поведение: я видел его во многих приложениях.
поведение: < Br /> Внизу есть DraggableView, который содержит прокручиваемое контент (реализовано с использованием ScrollView). Этот DraggableView должен быть перетаскивается (изначально вверх) до определенной точки, где дальнейшее движение больше не станет возможным - после чего, в одном и том же движении пальца , ScrollView (который является частью DraggableView) должен начать прокручивать .
То же самое должно работать в обратном направлении: когда Draggableview полностью расширен, и мы прокручиваем Scrollview обратно в верхнюю и дальше, в одном и том же движении пальца , DraggableView должен начать перетаскиваться. быть отслеживаемым. < /p>
Тяжелая панель также должна быть видна. >
Что я попробовал:
Я реализовал перетаскивание с использованием Draggesture и .offset (y: finaloffset) , изначально Отключение прокрутки с
Код: Выделить всё
.scrollDisabled(!isCompletelyDraggedToTop)< /code> на Scrollview
и отключение жеста в конце
.gesture(dragGesture, isEnabled: !isCompletelyDraggedToTop)Однако я не могу переключиться с перетаскивания на прокрутку в рамках одного движения пальца. Когда прокрутка Scrollview будет включена, и перетаскивание отключено, для продолжения перехода необходимо еще одно фактическое движение пальцев. У меня тоже нет никаких очевидных решений для этого. />
- Должен ли я продолжать работать с жестом перетаскивания + swiftui scrollview? < /li>
Может быть Swiftui Scrollview? (Что сложнее, чем в uikit) < /li>
Может быть, это вообще невозможно в Swiftui, и uikit требуется? < /li>
или это должно быть реализовано каким -то другим образом, а не через жест плюс Scrollview? смещение ScrollView? < /li>
Или, может быть, в форме библиотеки уже есть готовое решение? P> Не подходящие решения: < /p>
Системный лист имеет тенденцию перекрывать стержень вкладок, отодвигать основное представление и применить смещение для просмотра само по себе. < /li>
Популярный какао -капсул со звездами 1K не реализует «критерии одиночного движения» https://github.com/lucaszischka/bottomsheet
Подробнее здесь: https://stackoverflow.com/questions/794 ... and-scroll
Мобильная версия