web-dev-qa-db-ja.com

ScrollViewでSwiftuiは自動的に下にスクロールします(下部)

私の問題は私が(Swiffi)がForeachの内部でスクロールビューを持っていることです。 Foreachがいつ、最後のエントリがフォーカスされている私のエントリのすべてをロードするかを知ってください。

私はいくつかのGoogleの研究をしましたが、私は答えが見つかりませんでした。

  ScrollView {
    VStack {
      ForEach (0..<self.entries.count) { index in
        Group {
          Text(self.entries[index].getName())
        }
      }
    }
  }
 _
11
Leahpar

変更時に下部にスクロールします

コメントを投稿するのに十分な評判がありませんので、ここでは@DAMと@evert

ForEachのエントリ数を変更するたびに下部までスクロールすると、上記の回答で説明したように、aScrollViewReaderと同じ方法を使用することもできます。 View Modifierを追加するonChangeのように:

struct ContentView: View {
    let colors: [Color] = [.red, .blue, .green]
    var entries: [Entry] = Array(repeating: Entry(), count: 10)

    var body: some View {
        ScrollView {
            ScrollViewReader { value in
                            
                ForEach(0..<entries.count) { i in
                    Text(self.entries[i].getName())
                        .frame(width: 300, height: 200)
                        .background(colors[i % colors.count])
                        .padding(.all, 20)
                }
                .onChange(of: entries.count) { _ in
                    value.scrollTo(entries.count - 1)
                }
            }
        }
    }
}
 _
1
noranraskin