Scrollen durch mehr als ein Element in SwiftUI ScrollViewIOS

Programmierung für iOS
Guest
 Scrollen durch mehr als ein Element in SwiftUI ScrollView

Post by Guest »

Ich habe die folgende Scrollansicht, die eine bestimmte Anzahl von Karten anzeigt. Ich möchte, dass in der Bildlaufansicht jeweils nur zwei Karten angezeigt werden, mit einem leichten Blick auf die rechte Seite, um weitere Karten anzuzeigen. Die Scrollansicht sollte auch um 2 Karten gleichzeitig scrollbar sein. Zeigen Sie zum Beispiel Karte 1 und 2, während Karte 3 herausschaut, zeigen Sie dann beim Scrollen Karte 3 und 4, während Karte 5 herausschaut, und zeigen Sie dann beim Scrollen Karte 5. Wenn die Anzahl der Karten ungerade ist, sollte die letzte Karte für sich allein, aber mit angezeigt werden Führende Ausrichtung in der Scrollansicht. Ich möchte auch, dass jede Karte so groß ist, dass die 2-Karten-Anzeige den größten Teil des Platzes einnimmt, sodass jede Karte die gleiche Größe hat und zwischen den Karten und den Rändern (horizontal und vertikal) ein Abstand von 15 Punkten besteht. Wie kann ich das erreichen?
Hier ist mein Code:

Code: Select all

struct CardGallery: View {
@State var cards: [Int] = [1,2,3,4,5]

var body: some View {
GeometryReader { geometry in
VStack {

let width = geometry.size.width
let height = geometry.size.height / 1.5
let cardWidth = width / 2.2
let cardHeight = height / 1.2

ZStack {
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
ForEach(cards, id: \.self) { level in
CardView(level: level)
.frame(width: cardWidth,height: cardHeight)
}
}
.padding(.horizontal)
}
.scrollTargetBehavior(.paging)
.background {
Color.yellow
}
.clipShape(RoundedRectangle(cornerRadius: 15))
.overlay {
RoundedRectangle(cornerRadius: 15)
.strokeBorder(Color.black, lineWidth: 5)
}
}
.frame(width: width, height: height)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
.background {
Color.green.ignoresSafeArea(.all)
}
}
}

struct CardView: View {
let level: Int

var body: some View {
VStack(alignment: .leading) {
RoundedRectangle(cornerRadius: 15)
.fill(Color.blue)
}
.padding()
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • SwiftUI: ScrollView, das das unterste Blatt mitzieht
    by Anonymous » » in IOS
    0 Replies
    4 Views
    Last post by Anonymous
  • Swiftui - So erhalten Sie die Größe (Höhe) des Inhalts von Scrollview
    by Guest » » in IOS
    0 Replies
    5 Views
    Last post by Guest
  • Scrollview ist nicht scrollen
    by Anonymous » » in IOS
    0 Replies
    0 Views
    Last post by Anonymous
  • Scrollview ist nicht scrollen
    by Anonymous » » in IOS
    0 Replies
    0 Views
    Last post by Anonymous
  • Erstellen Sie eine Tippanimation für ein Element in ScrollView
    by Guest » » in IOS
    0 Replies
    0 Views
    Last post by Guest