質問

天気アプリの動作をエミュレートするモーダル検索ビューを作成することに問題があります。具体的には、2つのアニメーションがあり、私を悩ませ、不必要な0.2秒の遅延を導入しています。

  • モーダルビューが表示されると、私は UISearchDisplayController.searchBar Caling bebemingfirstresponder in viewDidAppear. 。ただし、モーダルビューがスライドしたときにキーボードが表示されませんが、モーダルビューの遷移のアニメーションが完了した後、さらに0.2秒がスライドする必要があります。コールを別のコールバックに移動します viewWillAppear また viewDidLoad 良くなかった、キーボードはそもそも現れません。

  • ユーザーがキャンセルに触れると、代表者の前に別のアニメーションが行われています searchDisplayControllerDidEndSearch メソッドが呼び出され、検索テキストフィールドを拡張し、ボタンを「溶かし」ます。繰り返しになりますが、ボタンが接続されたときにモーダルビューが移行することになっているため、このアニメーションは未解決のものです。

  • さらに、同じビューを却下して再提出すると、キーボードが移行後にスライドするだけでなく、キャンセルボタンが同じことをします(幸運にも同時に)。

ここで説明する同様の問題を知っています: キーボードアニメーションの問題モーダルビューコントローラー内でbecledfirstresponderを呼び出す際の問題。ただし、検索バーの動作は、テキストフィールドの動作とは異なるようです。著者が説明した手順を再現して、キーボードを呼び出して見えるようにすることができませんでした becomeFirstResponderviewDidLoad.

よろしく、クリス

役に立ちましたか?

解決

私はあなたの答えを見つけたと思います。インターフェイスビルダーを使用して検索バーを追加すると、「検索バー」と「検索バーと検索ディスプレイコントローラー」の2つの方法を実行できます。

私は2番目を使用していて、あなたが説明したまったく同じ問題を抱えていました。 「ViewDidappear」でキーボード(FirStresponderを使用して)のみを呼び出すことができました。しかし、検索バーだけを追加すると機能します。これで、「ViewDidload」のBeyfirStresponderを呼び出すことができ、キーボードがビュー自体とともに表示されます。

私はもう少し仕事を意味しますが、実際にはそれほど多くはありません。コントローラーを検索バーの代表者に設定する必要があります。結果のリストビューを追加し、コントローラーを代表者とデータソースにしました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top