Простая ошибка Swift Ui View при использовании заголовка UICollectionViewFlowLayoutIOS

Программируем под IOS
Ответить
Anonymous
 Простая ошибка Swift Ui View при использовании заголовка UICollectionViewFlowLayout

Сообщение Anonymous »


Здравствуйте, я делаю простое представление с содержимым в виде прокрутки и верхним заголовком. Когда пользователь прокручивает вниз, я хочу скрыть заголовок, а когда пользователь прокручивает вверх, я хочу его показать. У меня есть три разные вкладки, и если я вручную перемещаюсь между ними, все работает нормально. Если я попытаюсь нажать кнопки в заголовке, чтобы переключать вкладки, представление прокрутки немного корректирует представление прокрутки и ничего не делает, то я получаю массу ошибок ниже. Я работал над этим несколько часов, но безуспешно. Буду признателен за любую помощь, спасибо.

Поведение UICollectionViewFlowLayout не определено, поскольку: высота элемента должна быть меньше высоты UICollectionView минус верхние и нижние значения вставки раздела, минус верхние и нижние значения вставки содержимого. Соответствующий экземпляр UICollectionViewFlowLayout привязан к некоторый вид{ self.modifier(OffsetHelper(onChange: завершение)) } функция SafeArea()->UIEdgeInsets{ охранник пусть сцена = UIApplication.shared.connectedScenes.first как? UIWindowScene еще {возврат .ноль} Guard let SafeArea = Scene.windows.first?.safeAreaInsets еще {return .zero} вернуть безопасную область } } структура OffsetHelper: ViewModifier{ var onChange: (CGFloat,CGFloat)->() @State var currentOffset: CGFloat = 0 @State var previousOffset: CGFloat = 0 тело функции (содержание: Содержание) -> некоторый вид { содержание .оверлей { GeometryReader{прокси в let minY = proxy.frame(in: .named("SCROLL")).minY Цвет.прозрачный .preference(ключ: OffsetKeyNew.self, значение: minY) .onPreferenceChange(OffsetKeyNew.self) {значение в предыдущийСмещение = ТекущееСмещение текущееСмещение = значение onChange(предыдущееСмещение,текущееСмещение) } } } } } структура OffsetKeyNew: PreferenceKey{ статическая переменная defaultValue: CGFloat = 0 статическая функция уменьшения (значение: inout CGFloat, nextValue: () -> CGFloat) { значение = следующееЗначение() } } структура HeaderBoundsKey: PreferenceKey{ статическая переменная defaultValue: Anchor? статическая функция уменьшения (значение: inout Anchor?, nextValue: () -> Anchor?) { значение = следующееЗначение() } } перечисление SwipeDirection { дело вверх дело закрыто случай нет }
Ответить

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

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

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

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

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