Weather アプリの動作をエミュレートするモーダル検索ビューの作成に問題があります。具体的には、私を悩ませ、不要な 0.2 秒の遅延をもたらす 2 つのアニメーションがあります。
モーダル ビューが表示されるようになったら、
UISearchDisplayController.searchBar
becomeFirstResponder を呼び出して にフォーカスを移しviewDidAppear
ます。ただし、モーダル ビューがスライド インするとキーボードは表示されませんが、モーダル ビューの遷移のアニメーションが完了した後、スライド インするにはさらに 0.2 秒必要です。呼び出しを別のコールバックに移動しviewWillAppear
たり、viewDidLoad
うまくいかなかったりすると、そもそもキーボードが表示されません。ユーザーがキャンセルにタッチすると、デリゲートの
searchDisplayControllerDidEndSearch
メソッドが呼び出される前に別のアニメーションが発生し、検索テキスト フィールドが展開されてボタンが「溶けて」しまいます。繰り返しますが、ボタンがタッチされるとモーダル ビューが遷移するはずなので、このアニメーションは不要です。さらに、同じビューを閉じて再表示すると、遷移後にキーボードがスライドするだけでなく、キャンセル ボタンも同じように (幸運にも同時に) スライドします。
ここで説明されている同様の問題を認識しています: Modal View Controller 内で becomeFirstResponder を呼び出すときのキーボード アニメーションの問題。ただし、検索バーの動作はテキスト フィールドの動作とは少し異なるようです。を呼び出してキーボードを表示するために、その作成者が説明した手順を再現できませんでしbecomeFirstResponder
たviewDidLoad
。
よろしく、クリス