画像スニペットUITextFieldがキーボードに隠れないようにオフセットする2013-06-21iPhoneでアプリの画面にたくさんTextFieldを配置した時、画面下の方のTextFieldを選択するとキーボードが下からニョキッと出てきてTextFieldを隠してしまう。そのままでも入力は可能だが、キーボードを仕舞うまでどう入力されているか分からないので不便である。そこで、TextFieldを選択したときに隠れてしまう場合は表示をずらして隠れないようにしたい。ネットでサンプルを探したのだが、これというものが見当たらなかったので作ってみた。InterfaceBuilderでまず全体にUIScrollViewを敷き詰めて、そこにUITextFieldを並べていく。End」の2つのイベントハンドラを定義しておく。この際、どのTextFieldに対しても同じメソッドを適用する。メソッドに結合した方が良い。次のフィールドを宣言しておく。実際にオフセットを適用し始めるマージン}::@endそしてそれぞれ次のように初期化する。いうのは、例えば画面の上の方にあるTextFieldを選択したときは表示をずらす必要がないので、じゃあY座標がどこまでの範囲内ならオフセットしないかというのを決めておく必要がある。3.5インチの場合はだいたい120ピクセルぐらいまではずらさなくても大丈夫。4インチの場合は3.5インチの場合と90ピクセルくらい差があるのでマージンもそれだけ増やして大丈夫だ。次に最初に定義したイベントハンドラを実装する。0.0f;}尚、UITextFieldDelegateとかオフセット時のアニメーションとかは本題から外れるので適宜実装してください。