0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Swift】キーボードを初回表示する際に時間がかかる

Posted at

SwiftUIでアプリ開発時にビルド後一発目のキーボード表示に時間がかかっており、
対策はないか調べたので備忘録として残します。

原因

調べてみると結構旧知の事実現象みたいで、大きく分けると2つ原因があった。

①初回リリースの読み込み

初回起動時にキーボードに関連するリソースを読み込む必要あり、
これに時間がかかることで遅延が発生してしまう

②デバック

デバックでの起動時や、デバック中に遅延が起きる報告が多い
たしかにリリース版で動作させると軽くなった
リリースでは問題ないため、この原因は無視する

対策

主に①について対策する
アプリ起動時、またはTextFieldを表示した際に、あらかじめプレロードしておく方法が一般的な対策

#didFinishLaunchingWithOptions などでアプリの終了を検知して、
UITextFieldのfocusを一時的に有効化することでプレロードできる

let lagFreeField = UITextField()
self.window?.addSubview(lagFreeField)
lagFreeField.becomeFirstResponder()
lagFreeField.resignFirstResponder()
lagFreeField.removeFromSuperview()

参考
Super slow lag/delay on initial keyboard animation of UITextField

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?