キーボードの表示時にテキストフィールドをスライドさせる
入力フィールドが画面の下側であって欲しい要件は少なくありません。 いくらスマートフォンの画面が大きくなったと言っても、キーボードはある程度の大きさがありますし、 入力フィールドの場所の兼ね合いもあって、下手すると入力フィールドが見えなくなって入力できないとか厄介なものです。
こういう問題はハードウェアキーボードで入力している時はおきない問題ですが、ソフトウェアキーボードがを使う上ではどうしても発生する問題、 というか画面デザイン上、どうしても配慮しないといけない点です。
さて、キーボードの表示に合わせて、入力場所を移動する簡単な方法としては、IQKeyboardManager を利用する方法があります。
IQKeyboardManager の利用方法
IQKeyboardManager は CocoaPods からインストールできます。
ターミナルで Xcode プロジェクト (.xcodeproj) のあるディレクトリに移動します。
$ pod init ... Podfile の編集 ... 次の行を追加。 ... pod 'IQKeyboardManagerSwift' ... Podfile の保存. $ pod install
CocoaPods でインストールしたらインストールバージョンを、Podfile に追加しておくと良いです。
pod install のあとは foo.xcodeproj ではなく、Xcode ワークスペース foo.xcworkspace を使います。
$ open foo.xcworkspace
さて Xcode を開いたら AppDelegate.swift で IQKeyboardManagerSwift をインポートし、 IQKeyboardManager.shared.enable = true とします。
次のような感じになります。
import UIKit
import IQKeyboardManagerSwift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
IQKeyboardManager.shared.enable = true
return true
}
}
これで、自動的に入力フィールドが見える場所に表示されるようになります。