SwiftでTextFeildを入力するときに、下から出てきたキーボードで入力が見えなくなることはよくあります。
検索してみましたが、どれも、自力で実装するものばかりで、便利なライブラリを見つけたのでご紹介します。

実現したいこと

f:id:happy_teeth_ago:20200123130556g:plain

ライブラリ TPKeyboardAvoidingを利用する

公式サイトはこちら

podファイルに記載して,pod installを実行

pod 'TPKeyboardAvoiding'
$ pod install

Analyzing dependencies
Downloading dependencies
Installing TPKeyboardAvoiding (1.3.3)
Generating Pods project
Integrating client project

注意! podをインストールした後は、必ずXcodeを再度起動して、xcworkspaceアイコンから起動すること

StoryBoardにてViewの設定

スクロールビューを配置
その配下にViewを配置
構造はこんなイメージです。

Keyboard…がScrollView
SecondViewがViewになります。
デフォルトのViewからScrollViewへのconstraintsは
上下左右を0に設定

ScrollViewからViewへのconstraintsは
Align Center X,Yを設定しておく

ScrollViewにTPKeyboardAvoidingScrollViewクラスを設定

ポイント textFieldのdelegateをコントローラーへ接続

コードの記載

基本、このライブラリがTextFieldのinput開始イベントを拾ってくれるので、
リターンキーを押されたときの処理だけ記載しておく。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var yourNameTF: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
       
    }
  
}

extension ViewController: UITextFieldDelegate{
//リターンキーでテキストフィールドを閉じる
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
}

 

このライブラリは、簡単に実装できておすすめです。

またクラスを適用すれば、どの画面でも利用できるので、コード量を減らせます。