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

Posted

技术标签:

【中文标题】如何使用 KolodaView Swift 在卡片的左右拖动中点击喜欢和不喜欢 API【英文标题】:How to hit Like and dislike API on left and right drag of cards using KolodaView Swift 【发布时间】:2021-06-18 07:44:27 【问题描述】:

我正在使用 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()
 

它的工作但问题是,在交换完成百分比 == 100.0 并点击 API 时,但用户缓慢滑动卡片 API 并点击多个,重复 100.0。我只想要一击。

【问题讨论】:

【参考方案1】:

为什么不使用

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()
    
 

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

【讨论】:

我认为 func koloda(_ koloda: KolodaView, didSwipeCardAt index: Int, in direction: SwipeResultDirection) 是更好的解决方案,谢谢 如何在左右拖动时在顶部添加图像 您可以在开始拖动或任何其他类似的委托方法中添加图像。

以上是关于如何使用 KolodaView Swift 在卡片的左右拖动中点击喜欢和不喜欢 API的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中缩放卡片时翻转卡片

在完成块 Swift 中返回

使用Koloda View在Swift中构建类似Tinder(国内的探探社交应用)的卡片

iOS Swift:如何实现类似用户界面的堆叠卡片?

IOS Swift3卡栈覆盖

Swift - 使用 UiView 的 iCarousal