SwiftUI ScrollView: странное вертикальное растяжение

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

Пример кода:

ScrollView{
            VStack{

                GeometryReader{ reader -> AnyView in
                    print("\(reader.frame(in: .global).minY)")
                    return AnyView(Text("\(reader.frame(in: .global).minY)").onTapGesture {
                        self.isExtended.toggle()

                    })
                }
                Text("Test").onTapGesture {
                    self.isExtended.toggle()

                }
                if isExtended{
                    ForEach(0..<10,id:\.self){ index in
                        Text("\(index)")
                    }
                }

            }
        }

Вывод


person Altern    schedule 14.11.2019    source источник
comment
Отправленный вами код не перемещается при переключении расширенного раздела. Вы вносите изменения, чтобы скрыть строку состояния?   -  person John M.    schedule 15.11.2019


Ответы (1)


Все работает как положено. По reader.frame(in: .global).minY вы получаете minY вида содержимого ScroolView (а не сам ScroolView, как вы могли ожидать) разрешенное положение для пружинного эффекта при перетаскивании вверх за пределы экрана. Попробуйте перетащить, и вы увидите это в выводе отладки.

person Asperi    schedule 15.11.2019
comment
Я знаю, что это минY. MinY уменьшился, когда я нажимаю на продление, а также увеличил нормальное положение в миллисекундах. Он хорошо работает, когда я перетаскиваю scrollview. - person Altern; 15.11.2019
comment
Хорошо, тогда, пожалуйста, проясните вопрос, потому что я не наблюдаю ничего «странного» в том, как ведет себя предоставленный код. - person Asperi; 15.11.2019