ScrollView Scroll -Position ändert sich nicht, wenn sich die Bildlauf -ID von einem anderen Scrollview geändert hatIOS

Programmierung für iOS
Anonymous
 ScrollView Scroll -Position ändert sich nicht, wenn sich die Bildlauf -ID von einem anderen Scrollview geändert hat

Post by Anonymous »

Konzept Ich versuche zu erstellen, ist zwei Scrollviews, die miteinander synchronisieren. Wenn sich die Position in einem Scrollview ändert (über das Scrolling), wird die Position in Second Scrollview ebenfalls ändert. Wenn Sie beim Drücken zufälliger albalscrollid festlegen, aktualisieren beide ScrollViews in derselben Position wie erwartet.

Code: Select all

import SwiftUI

struct Album: Identifiable{
let id = UUID()
let name: String
}

struct ScrollContentView: View {
@State var albumScrollId: Album.ID?
@State var albums: [Album] = []

var body: some View {
VStack{
Button("Scroll random"){
albumScrollId = albums.randomElement()?.id
}.buttonStyle(.borderedProminent).padding()
Scroller(albumScrollId: $albumScrollId, albums: albums)
Scroller(albumScrollId: $albumScrollId, albums: albums)

}.onAppear{
albums = [
Album(name: "1"),
Album(name: "2"),
Album(name: "3")
]
albumScrollId = albums[0].id
}
}
}

struct Scroller: View {
@Binding var albumScrollId: Album.ID?
let albums: [Album]

var body: some View {
VStack{
Text("\(albumScrollId?.uuidString ?? "")")
ScrollView(.horizontal){
HStack(spacing: 0){
ForEach(albums){album in
Text("album: \(album.name)").font(.title)
.containerRelativeFrame(.horizontal, alignment: .center)
}
} .scrollTargetLayout()
}.scrollTargetBehavior(.paging)
.scrollIndicators(.never)
.scrollPosition(id: $albumScrollId, anchor: .center)

}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post