質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

170閲覧

【Swift】JSQMessageのCollectionViewの高さを変更したい

nakamu

総合スコア82

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/06/17 06:52

編集2022/01/12 10:55

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

collectionViewのcontenInsetで出来るような気がします。

//collectionViewの下から8points余白をもたせたい時 collectionView?.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 8, right: 0)

投稿2019/06/17 11:25

akaakoz

総合スコア183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nakamu

2019/06/17 13:49

入力欄が隠れたままです。 inputToolbarがちょうど自分の高さ分位置が下にある状況です。
nakamu

2019/06/17 21:26

constrantsのせいかビクともしないです xcode側やこちらからコードで追加した制約の変更方法ならリファレンスが十分あるので 可能なんですが、ライブラリのコードで指定されたconstrantsの変更や削除がよくわからないです。
akaakoz

2019/06/18 03:28

そうなんですよね〜。サードパーティーライブラリーて実装は便利なんだけど、カスタマイズとか特有のバグが出るとかなり厄介なんですよね。あと調べたらJSQMessageってDeprecatedされて、バグとかのレポートサポートしてないみたいですね。 keyboardObserverの実装の追記してもらっていいですか?
nakamu

2019/06/19 05:41

追記しました! 表示の時は、隠れずに表示できました!! ただ指でキーボードを下げている間はライブラリ側でinputtoolbarのy座標をずっと計算して調節しているため完全に下げた状態じゃないと隠れた状態になります。 あとちょっと何ですが、難しいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問