前提・実現したいこと
質問失礼します。
ストーリーボードにてスクロールビューの中にコンテナビューを配置し、
そのviewにTextViewを配置してスクロールを可能にしていたのですが、
入力項目とキーボードが被ってしまった場合はスクロールする様にしようとしたところ、
TextViewとScrollViewで配置されているViewControllerが違う為、
一つのクラスに両方を接続する事が出来ませんでした。
親子ビュー間で呼び出してメソッドを使用する方法など色々と調べたのですが、
解決策を見つけられずに困っています。
どなたかご教示いただけると嬉しいです。
よろしくお願い致します。
該当のソースコード
swift
1 ///textViewの情報を格納するための変数 2 var txtActiveField = UITextView() 3 4 5 ///該当するtextViewを編集開始時にtextViewの位置や表示されているテキストなどを取得する 6 func textViewShouldBeginEditing(textView: UITextView!) -> Bool { 7 txtActiveField = commentTextView 8 return true 9 } 10 ///キーボードとtextViewが被っていたら画面をずらす 11 func handleKeyboardWillShowNotification(notification: Notification) { 12 13 let userInfo = notification.userInfo! 14 let keyboardScreenEndFrame = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue 15 let myBoundSize: CGSize = UIScreen.main.bounds.size 16 17 let txtLimit = txtActiveField.frame.origin.y + txtActiveField.frame.height + 8.0 18 let kbdLimit = myBoundSize.height - keyboardScreenEndFrame.size.height 19 20 if txtLimit >= kbdLimit { 21 22 ※ここにスクロールビューを接続したい※.contentOffset.y = txtLimit - kbdLimit 23 } 24 } 25 26 ///キーボードを閉じたら元にズラした分を元に戻す 27 func handleKeyboardWillHideNotification(notification: NSNotification) { 28 ※ここにスクロールビューを接続したい※.contentOffset.y = 0 29 } 30
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/17 05:30
2020/04/17 06:23
退会済みユーザー
2020/04/17 06:28
2020/04/17 06:51
退会済みユーザー
2020/04/17 07:00
2020/04/17 07:29