如何使用KolodaView Swift左右拖动卡片点击喜欢和不喜欢API

How to hit Like and dislike API on left and right drag of cards using KolodaView Swift

我正在使用 kolodaview 来查看卡片 swift 之类的视图。一切正常,但我卡在了一个地方。当用户向左或向右滑动卡片时,API点击喜欢和不喜欢。 对于这个左右 koloda 给定的委托方法:

 func koloda(_ koloda: KolodaView, draggedCardWithPercentage finishPercentage: CGFloat, in direction: SwipeResultDirection){
 if direction == .left {

 if finishPercentage == 100.0 {
    apifordislike()
  }
 } else if direction == .right{
    apiforlike()
 }
}

它的工作,但问题是,当交换 finishPercentage == 100.0 并点击 API 时,但用户慢慢滑动卡片 API 点击多个,重复 100.0。我只想要一击。

为什么不用

func koloda(_ koloda: KolodaView, didSwipeCardAt index: Int, in direction: SwipeResultDirection) {

代替?

否则,保留有关状态的信息 - 例如

...

var alreadyLiked: Bool = false
var alreadyDisliked: Bool = false

...

func koloda(_ koloda: KolodaView, draggedCardWithPercentage finishPercentage: CGFloat, in direction: SwipeResultDirection){
 if direction == .left {

 if finishPercentage == 100.0 {
    if !alreadyDisliked {
        alreadyDisliked = true
        apifordislike()
     }
  }
 } else if direction == .right{
    if !alreadyLiked {
        alreadyLiked = true
        apiforlike()
    }
 }
}

在你的情况下,你可能会保留两个变量,以防有人改变主意变成不喜欢。此外,您可能希望在操作从喜欢更改为不喜欢时重新启动标志,反之亦然。