0

キーボードが初めて表示されるときの最初の becomeFirstResponder イベントの間、UIView アニメーションがスムーズでないことがよくあります。UIView を手動でスクロールして textField を表示するなど、キーボード アニメーションで発生するアニメーションについて言及しています。アニメーションは、最初に実行された後は常にスムーズです。

これが当てはまる技術的な理由はありますか?最初の実行時に UIView アニメーションで発生する遅延読み込みまたは最適化があり、その後再利用のためにキャッシュに保存されるのではないかと考えていました。これに関して学んだ教訓はありますか?これがこの聴衆に明確でない場合は、テスト プロジェクトで問題を再現することを試みることができます。

4

1 に答える 1

1

これはなぜこれが起こるのかという質問には答えませんが、それを修正する方法を説明します.

iOS アニメーションを最初に実行したときに遅いのはなぜですか?

基本的に、「WILL」または「SHOULD」ではなく、「DID」イベントでアニメーションを実行する必要があります。システムは「意志/すべき」イベント中にアニメーションを実行するため、共謀が起こっているようです。これは、最初の実行と他のすべての実行で動作が一致しない理由を説明していません。

アニメーションをキーボード アニメーションと同時に実行したかったので、アニメーションを "textFieldWillBeginEditing" に入れるべきだと思った人もいるかもしれません。幸いなことに、アニメーション コードを "DID" に配置すると、実際にはアニメーションが同時に発生することが保証されます。素晴らしい。

最初の実行と 2 番目の実行の間の不一致についてまだ誰かが説明を持っている場合、私は彼の質問を開いたままにし、賛成票と質問の回答を与えます。ありがとう!

于 2013-02-21T18:29:49.747 に答える