Как отправить действие смахивания в UIView в Swift
Я пытаюсь клонировать Tinder, сделал свайп влево (не нравится человек) и вправо (нравится человек) Ялантисом / Колода (https://github.com/Yalantis/Koloda). У меня также есть два изображения для кнопки нравится / не нравится. Я хочу, чтобы мой mainView проводил пальцем влево / вправо, когда я касаюсь изображения "нравится / не нравится".
let likeImageTap = UITapGestureRecognizer(target: self, action: #selector(HomeViewController.sendSwipeRightAction))
likeImage.isUserInteractionEnabled = true
likeImage.addGestureRecognizer(likeImageTap)
Как мне поставить эту функцию?
@objc func sendSwipeRightAction() {
}
Это мои протоколы
extension HomeViewController: KolodaViewDataSource, KolodaViewDelegate {
//...
func koloda(_ koloda: KolodaView, didSwipeCardAt index: Int, in direction: SwipeResultDirection)
{
if direction == .left {
//...
print ("swipe left")
}
if direction == .right {
//...
print("swipe right")
}
}
}
Это мой взгляд
@IBOutlet var mainView: KolodaView!
Я пытаюсь использовать эту функцию, а затем вызываю ее при касании изображения, поэтому я могу делать то, что хочу, так же, как смахивание, но вид не меняется на следующее изображение.
public func swipe(_ direction: SwipeResultDirection, force: Bool = false)
{
//..
}
Итак, я хочу отправить действие смахивания в представление, например:
mainView.sendActions(for: .swipeLeft)
Как мне поступить? Спасибо за ваше предложение.
1 ответ
Решение
В примере есть код
kolodaView.swipe(.left)
kolodaView.swipe(.right)
ваш код будет таким
@objc func sendSwipeRightAction() {
mainView.swipe(.right)
}