質問: iOSのバージョンでキーボード出現時にUITextFieldが自動で隠れないようにスクロールするようになったバージョンはありますか? Objective-C時代に、自前で隠れないようにView(厳密にはUIScrollViewだったような?)を移動させてたら、急にiOS側のバージョンアップで2重にスクロールするようになり、自前のスクロール処理をはずした記憶があるような気がするのですが、iOS10, 11, 12ではそのような挙動は確認されませんでした。 どこかのバージョンで自動でスクロールするようになって、そしてまたどこかのバージョンで自動スクロールがなくなったりしたのでしょうか? それとも記憶違いでしょうか? (記憶はSwiftが世にでる2から3年ほど前の時代です)
回答: > > iOSのバージョンでキーボード出現時にUITextFieldが自動で隠れないようにスクロールするようになったバージョンはありますか? > > > 基本的にはないです。これまでのすべてのiOSのバージョンにおいて、ソフトウェアキーボードによってUITextFieldを含むビューの要素が隠れないようにするためには、ソフトウェアキーボードの表示・非表示を監視して、自分で要素を移動させるなどの処理を書く必要があります。 基本的に、と書いたのは例外があるからです。 例えばUITableViewControllerはセルがテキストフィールドや同等のコンポーネントを含む場合、キーボードを自動的に避けてくれる(自動的に隠れない位置にTableViewをスクロールさせる)機能があります。 (UITableViewではないです。UITableViewControllerです。) おそらく、UITableViewControllerを使った画面を触っているときに、通常の画面と同じようにキーボードを避ける処理を書いたらUITableViewControllerの処理と重複した、ということではないでしょうか。