前提・実現したいこと
スマホアプリのTinderに代表されるような、スワイプ操作で対象を振り分けるアプリの実装。
上下左右の4方向へスワイプ操作で振り分ける。
Tinder-Like UIの作成用ライブラリである**Koloda**を使用。
<バージョン情報>
Xcode 11.0
Swift 5.0
発生している問題・エラーメッセージ
デフォルトで設定されている、基本的な左右方向のスワイプ操作は問題なく動作。
上下方向のスワイプ動作が実現できない。
また、スワイプ時に動作するように記述した処理が動かない。
ビルドは問題なく通り、エラーコードは無し。
試したこと
日本語や英語でWeb検索し、サンプルコードやライブラリの解説を参考に記述。
【問題1:スワイプ方向の追加】
その1. SwipeResultDirectionへの追加
Swift
1public enum SwipeResultDirection: String { 2 case left 3 case right 4 case up 5 case down 6 }
その2. スワイプ方向の許可
Swift
1 func koloda(koloda: KolodaView, allowedDirectionsForIndex index: UInt) -> [SwipeResultDirection] { 2 return [.up, .down, .left, .right] 3 }
<結果>
左右へのスワイプ:一定距離スワイプするとKolodaViewが画面外へ消え、次のViewが表示される(正しく動作)
上下へのスワイプ:どこまでスワイプしても消えることはなく、手に持ったままの状態
以上から、正しくスワイプ方向の追加が行われていないと思われるが、
参考文献の少なさから解決方法が全く見出せていない。
【問題2:スワイプ時の処理】
正しく処理できているか確認するため、スワイプ時にViewController上のUILabelのtextを変更するコードを記述。
Swift
1func koloda(_ koloda: KolodaView, didSwipeCardAt index: Int, in direction: SwipeResultDirection) { 2 switch direction { 3 case .right: 4 return label1.text = "右" 5 case .left: 6 return label1.text = "左" 7 case .up: 8 return label1.text = "上" 9 case .down: 10 return label1.text = "下" 11 } 12 }
<結果>
上述の通り動作していない上下方向だけでなく、左右方向へスワイプしてもUILabelのtextが変化しなかった。
まとめ
スワイプ方向の設定、スワイプ時の動作ともに全く解決の糸口が見えておらず、
Kolodaに関する解説がほとんど見当たらないことから非常に困っています。
何かアドバイスやご指摘があればよろしくお願いいたします。
あなたの回答
tips
プレビュー