Как привязать ScrollView к дочернему представлению в SwiftUIIOS

Программируем под IOS
Anonymous
Как привязать ScrollView к дочернему представлению в SwiftUI

Сообщение Anonymous »

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

Код: Выделить всё

import SwiftUI

struct ContentView: View {
@State var scrollViewContentSize: CGSize = .zero
var body: some View {
let _ = ContentView._printChanges()
VStack {
Text("Header")
ScrollView {
VStack {
Text("IOS Dev")
Text("SwiftUI")
}
.background(
GeometryReader { geo in
Color.blue.task {
scrollViewContentSize = geo.size
print(scrollViewContentSize)
}
}
)
}
.frame(width: scrollViewContentSize.width,
height: scrollViewContentSize.height,
alignment: .center)
.background(Color.red)

Text("Footer")
}
}
}

#Preview {
ContentView()
}
Проблема в том, что IOS DEV и SwiftUI не видны, потому что, когда я добавил модификатор кадра в ScrollView, ScrollViewContentSize.width становится равным нулю.
Дайте мне решение на базе iOS 15 или ранее, не позже.

Подробнее здесь: https://stackoverflow.com/questions/787 ... in-swiftui

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