dadalar / SwiftUI-CardStackView

A easy-to-use SwiftUI view for Tinder like cards on iOS, macOS & watchOS.
MIT License
490 stars 53 forks source link

Swipe left and right on button click #1

Open davy-devibharat opened 4 years ago

davy-devibharat commented 4 years ago

Hi, Thanks for you help, How can I Swipe left and right on button click as when I click Like and Dislike button card should auto Swipe

Your response will be helpful to me

Thanks

dadalar commented 4 years ago

Hi @devorblackbeard,

I tried a few tricks - you can remove the current element from your array but the tricky part is to get proper animation. If you have a solution I'm glad to incorporate but for now it seems I need to change fundamentals to support this. Anyway, I'll keep this in mind for the next version.

Thanks for your input.

zkhalapyan commented 4 years ago

+1, this would be great to have! I wonder if we can collaborate on this; if you have any pointers, I can try it out.

dadalar commented 4 years ago

The main issue is animating the card out of the screen programmatically. There is already a hard to notice problem where when you drag a card and lift off your finger, the card start animating but also goes behind other cards. This looks like an undefined behaviour and probably we should be using a custom transition/animation instead of the one we have in CardView.swift's removal transition (line 71).

timothyerwin commented 3 years ago

@dadalar this component is working very well for swipe but unfortunately not having a programmatic way to do it is a showstopper....

nomadplanet commented 2 years ago

Hi,

I spent quite a few hours on this and indeed the project needs a substantial rework in order to have a programmatic swipe.

I achieved this result :

Simulator Screen Recording - iPod touch (7th generation) - 2022-04-26 at 15 18 44

I even have an «unswipe» (undo) function.

Not sure @dadalar would want a PR on his repo given it's almost a rewrite. Yet you can have a look at my work in my rework branch in my fork.

Mcrich23 commented 2 years ago

@nomadplanet How are you doing the undo?

nomadplanet commented 2 years ago

Like I said, check out my rework branch in my fork, you'll have your answer :)

Mcrich23 commented 2 years ago

I don't see your fork

nomadplanet commented 2 years ago

I got it transferred to another account. Check out https://github.com/bruxless/SwiftUI-CardStackView

wellsfletcher commented 2 years ago

@nomadplanet your changes work great! I did notice that the model.unswipe() function doesn't have a completion handler like the model.swipe() function does. Small issue, but I have to do a pretty cringe workaround to fix a bug due to this.

nomadplanet commented 2 years ago

Unswiping is not really different from swiping, I don't think it would be too hard to call the onSwipe() completion handler at some point

aehlke commented 1 year ago

anyone finding luck with this new fork, or making progress in other ways? thanks

yildirimatcioglu commented 3 weeks ago

any update?