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

Life is Really Short, Have Your Life!!

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

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

iOS Swift

結構手順がややこしい。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の手順)、という理屈です。

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