kolodaの画像に対応するテキストを出力する
歌のタイトルを入力しその曲のジャケット写真をkolodaで表示させるアプリを作っています
その時にそのタイトル名をlabelで出したいのですが、写真に対応するタイトル名を表示させることができません
特に、一枚めの画像のタイトルと、前の画像に戻すときにタイトルを戻す方法がわかりません
発生している問題・エラーメッセージ
kolodaの1枚目のタイトルが表示されない 前の画像に戻った時にそれに応じてタイトルが変更されない
該当のソースコード
swift
1import UIKit 2import Koloda 3import RealmSwift 4import Accounts 5import LINEActivity 6import FontAwesome_swift 7 8class ViewController: UIViewController,KolodaViewDelegate, KolodaViewDataSource { 9 10 @IBOutlet weak var label: UILabel? 11 12 @IBOutlet weak var kolodaView: KolodaView! 13 14 @IBOutlet weak var buttonRight: UIButton! 15 16 @IBOutlet weak var buttonRevert: UIButton! 17 18 @IBOutlet weak var buttonLeft: UIButton! 19 var musics:[Musics] = [] 20 21/* var titles: [String] = [] 22 23 var images: [Data] = [] 24 */ 25 26 func reloadView(){ 27 let realm = try! Realm() 28 29 musics = realm.objects(Musics.self).reversed() 30 31 kolodaView.reloadData() 32 } 33 34 override func viewDidLoad() { 35 36 super.viewDidLoad() 37 38 kolodaView.delegate = self 39 kolodaView.dataSource = self 40 41 buttonLeft.titleLabel?.font = UIFont.fontAwesome(ofSize: 30, style: .solid) 42 buttonLeft.setTitle(String.fontAwesomeIcon(name: .heartBroken), for: .normal) 43 44 45 buttonRight.titleLabel?.font = UIFont.fontAwesome(ofSize: 30, style: .solid) 46 buttonRight.setTitle(String.fontAwesomeIcon(name: .heartbeat), for: .normal) 47 48 buttonRevert.titleLabel?.font = UIFont.fontAwesome(ofSize: 30, style: .solid) 49 buttonRevert.setTitle(String.fontAwesomeIcon(name: .undo), for: .normal) 50 51 print(Realm.Configuration.defaultConfiguration.fileURL!) 52 53 54 55 56 57 } 58 59 override func viewWillAppear(_ animated: Bool) { 60/* if let titles = UserDefaults.standard.array(forKey: "titles") { 61 self.titles = titles as! [String] 62 } 63 */ 64 /* if let images = UserDefaults.standard.array(forKey: "images") { 65 self.images = images as! [Data] 66 } 67 */ 68 reloadView() 69 70 71 72 } 73 func koloda(_ koloda: KolodaView, didSwipeCardAt index: Int, in direction: SwipeResultDirection) { 74 75 label!.text = musics[index + 1].name 76 77 } 78 func koloda(_ koloda: KolodaView, viewForCardAt index: Int) -> UIView { 79 80 let img = UIImage(data: musics[index].image) 81 82 return UIImageView(image: img) 83 84 85 /* let cell = Bundle.main.loadNibNamed("CustomViewCell", owner: self, options: nil)?.first as? KolodaCellViewController 86 87 cell!.label.text = musics[index].name 88 89 let img = UIImage(data: musics[index].image) 90 91 cell?.view = UIImageView(image: img) 92 93 94 return cell!.view 95 96 */ 97 98 99 } 100 101 func kolodaNumberOfCards(_ koloda: KolodaView) -> Int { 102 /* return images.count 103 */ 104 return musics.count 105 } 106 107 108} 109 110//realm 111import RealmSwift 112 113class Musics: Object{ 114 @objc dynamic var id: Int = 0 115 116 @objc dynamic var image:Data = Data() 117 118 @objc dynamic var name:String = "" 119} 120
試したこと
viewdidloadやviewwillAppear、shouldSwipeCardAt,didSwipeCardAtなどでindexの値も工夫しながらやってみたんですが、1枚目の画像のタイトルが表示されません。2枚目の曲からは表示されます。また、一度戻すとそれに応じてタイトルも戻したいんですが、そうなりません
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/04 18:40
2019/08/04 18:43