Erstellen Sie eine Tippanimation für ein Element in ScrollViewIOS

Programmierung für iOS
Guest
 Erstellen Sie eine Tippanimation für ein Element in ScrollView

Post by Guest »

Ich möchte, dass die Elemente in LazyVGrid einen Tippmodifikator haben (ihre Skalierung ändern) und gleichzeitig scrollen können. Ich habe für jedes Element einen Tippmodifikator eingerichtet und es funktioniert wirklich, aber die Möglichkeit, durch den Inhalt zu scrollen, verschwindet. Wenn ich jedoch meinen benutzerdefinierten Tippeffekt deaktiviere, ist das Scrollen wieder verfügbar. Wie kann ich einen Klickeffekt erzielen und gleichzeitig durch den Inhalt scrollen?

Code: Select all

struct ScaledTappable: ViewModifier {

@State var state = false
var tapHandler: () -> Void

func body(content: Content) -> some View {
content
.scaleEffect(state ? 0.9 : 1)
.gesture(
DragGesture(minimumDistance: 0)
.onChanged({ value in
withAnimation(.smooth(duration: 0.2)) {
state = true
}
})
.onEnded({ value in
withAnimation(.bouncy(duration: 0.5)) {
state = false
tapHandler()
}
})
)
}
}
extension View {

@ViewBuilder
func tappable(enabled: Bool = true, onTap: @escaping () -> Void) -> some View {
if enabled {
self.modifier(ScaledTappable(tapHandler: onTap))
} else {
self.opacity(0.3)
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post