Firebase
[swift 3] JSQMessageでfont color change!
[環境]
Xcode:8.3.1
Swift:3.1
iOS:10.3
結構探したのですが、思ったよりswift3の情報が無かったので投稿です。
JSQMessageを導入したあと、Message bubbleの背景色はコード上で元々記載してあるので変更が簡単ですが、Message Bubbleの上のfont colorを変更したい場合がちょっと面倒でした。
方法1:JSQMessage自体のobject-cで記載されている箇所を変更する
→この方法では、outgoing、incoming毎に変更できる感じでもなく、大元はできるだけ変えたくないなと感じました。
方法2:swift側でoverrideして色を変える
→この方法だと一番簡単だろうと思いましたが、下記のgithubでの公式なQ&Aでもジャストなものが見つけづらかったです。
※swift2で、JSQMessageがこのVersionなら・・・という情報はあるのですが、苦労するポイントですね。。。
https://github.com/jessesquires/JSQMessagesViewController/issues
今回は方法2のコードを記載します。
ポイントは、「overrideするのはあくまでUICollectionViewのcellForItemAt」という点でしょうか。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
override func collectionView(_ collectionview: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{ let cell = super.collectionView(collectionView, cellForItemAt: indexPath) as! JSQMessagesCollectionViewCell let message = messages?[indexPath.item] if message?.senderId == self.senderId { //outgoing bubbleのテキストカラー cell.textView!.textColor = UIColor.white } //incoming bubbleのテキストカラー cell.textView!.textColor = UIColor.white return cell } |
他にもカスタマイズできる点は多々ありますし、開発も止まっていないので助かりますね。
村本訓一
http://kunikazumuramoto.com株式会社lord代表。WEBデザイナー⇒ディレクター⇒プロデューサーです。2010年から起業しています。社会に出てからずっとWEB屋です。 新しいネットサービス、デバイス、コミック、本、映画好きです。最近は急にプログラマーっぽい事もやってます。