JSQMessageのCollectionViewのheightがデフォルトでスクリーンサイズになっているんですが、入力欄の背景色が透明なのでメッセージが裏に透けてしまっています。
最初はframe.size.heightを直接いじって見たのですがうまくいかず、その後下記のコードでやったところ通常時はうまくいったのですが、キーボード時に入力欄が消えてしまいます。
JSQMessage詳しい方いらっしゃいませんでしょうか?
swift
1 override func viewDidLayoutSubviews() { 2 super.viewDidLayoutSubviews() 3 self.collectionView.frame = CGRect(x: 0,y: 0,width: UIScreen.main.bounds.width,height: UIScreen.main.bounds.height - self.inputToolbar.frame.size.height) 4 } 5
追記
swift
1/// Notification発行 2 func configureObserver() { 3 let notification = NotificationCenter.default 4 notification.addObserver(self, selector: #selector(keyboardWillShow(_:)), 5 name: UIResponder.keyboardWillShowNotification, object: nil) 6 notification.addObserver(self, selector: #selector(keyboardWillHide(_:)), 7 name: UIResponder.keyboardWillHideNotification, object: nil) 8 print("Notificationを発行") 9 } 10 11 /// キーボードが表示時に画面をずらす。 12 @objc func keyboardWillShow(_ notification: Notification?) { 13 inputToolbar.frame.origin.y = inputToolbar.frame.origin.y - inputToolbar.frame.height 14 print("keyboardWillShowを実行") 15 } 16 17 /// キーボードが降りたら画面を戻す 18 @objc func keyboardWillHide(_ notification: Notification?) { 19 inputToolbar.frame.origin.y = inputToolbar.frame.origin.y + inputToolbar.frame.height 20 print("keyboardWillHideを実行") 21 } 22
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/17 13:49
2019/06/17 14:07
2019/06/17 21:26
2019/06/18 03:28
2019/06/19 05:41