1

UITableViewのdeselectRowAtIndexPath:を使用して少し実験して、テーブルビューに戻ったときにどの行が表示されているかをユーザーが認識できるようにしました。

これをviewWillAppearとviewDidAppearに配置すると、結果がわずかに異なることに気付きました。前者は、ポップされたビューがスライドアウトするときにアニメーションを開始しますが、後者は、ポップされたビューが完全になくなったときにのみアニメーションを開始します。結果として、後者はより「発音された」と感じます(アニメーションの多くは、行が完全に画面に表示された状態で発生します-実際にはすべてです)。

美的には、これは便利な区別です。ユーザーエクスペリエンスをより細かく制御できるからです。ただし、いくつかの質問:

  • どちらか一方を使用する必要がある技術的な理由はありますか?
  • いくつかのAppleアプリケーションを注意深く見ると、viewWillAppearでアニメーション化されていると思います。誰でも確認できますか?
  • viewWillAppearを使用すると、アニメーションが画面外で完了するリスクがありますか(ポップされたView Controllerでの処理が遅れているなどの理由で)?それとも、ポップされたビューからの遷移の開始時にのみ起動しますか?
4

1 に答える 1

0

1)コードが完全にロードされているビューに依存している場合は、viewDidAppearの方が優れていますが、この場合、技術的な違いはないと思います。

2)私たちの誰もがAppleで働いているとは思わない...

3)viewWillAppearは、定義上、ビューが表示され始める直前に呼び出されます。ビューが表示されるよりもアニメーションに時間がかかる場合は、はい、画面外に表示されます。それ以外の場合は、(アニメーションの長さ-(マイナス)ビューが表示されるまでの時間)になります

于 2012-04-12T01:09:59.217 に答える