読者です 読者をやめる 読者になる 読者になる

Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

UITextFieldでキーボードの自動スクロールをするまでの流れ

結構手順がややこしい。2時間ぐらいかかってしまった。

自分の作ってるViewをUIScrollViewの配下に置く

まずはこれ。AutoLayoutを使っている場合は、こちらを参照下さい。この通りやったら出来ました。

easyramble.com

入れ込んだはいいけど、画面トップにIB上表示されないマージンを取られた場合は、こちらを参照下さい。

qiita.com

ViewControllerの「Adust Scroll View Insets」のチェックをOFFであります。

UIScrollView,UITextFieldのデリゲートを登録

略)

キーボードの自動スクロールの方法

qiita.com

こちらに記載されているやり方がわかりやすい。

1. UITextFieldが編集された直後に編集されているtextFieldのインスタンスを保持
2 .ソフトウェアキーボードの表示・消去のイベントハンドラを登録
3. 表示された時に、1で取得したUITextFieldのY座標を取得して、scrollViewのy座標を動かす。
4. キーボードを閉じたら、y座標をゼロに戻す。(トップにする)

該当したUITextFieldのy座標とキーボードのy座標を比べて、UITextFieldのy座標の数値が大きればキーボードは隠れている状態なので、隠れない程度までスクロールしてあげる(4の手順)、という理屈です。

千里の道も一歩からやで。