1

ナビゲーションバーのUISearchBarがView Controller間で「共有」されているiOSアプリケーションのFacebook機能を再現しようとしています。たとえば、ホームニュースフィードビューの検索バーをタップすると、新しいビューコントローラがプッシュされ、検索バーが新しいビューコントローラに「転送」されます。検索バーのサイズは、ビューコントローラーのトランジション(以下のスクリーンショットに示すように、「インタラクティブポップ」トランジションを使用する場合を含む)の横にあるように、サイズ変更され、アニメートされます。この動作は、アプリケーション全体でさまざまな方法で行われます。 UIKitでこの動作を実現するための標準的な方法はありますか、またはFacebookは何とかカスタムのトランジション/アニメーションをナビゲーションバーと検索バーに適用していますか?UIViewController間でUINavigationBarのUISavigationBarが共有されています

enter image description here

答えて

0

はそれで迅速なプレイを持っていたので、最初私は、メイン画面は、いくつかの部分に分割されていることを言うと思います。そのオブジェクトが何であるかを知るのは難しいですが、推測すると、検索バーやその他の「ナビゲーション」要素だけを含むUIViewControllerがあると言えます。その下には、ニュースフィードを含む別のUIViewControllerがあります。これは、さまざまな他のもの(カスタム)がそこで発生する可能性のある柔軟なスペースです。これらの両方は、親ViewController内で 'ChildViewControllers'として設定されている可能性があります。これにより、たとえば、インターフェイスビルダーの同じUIViewControllerスペースにいくつかのUIViewControllerを取得できます。

検索バー自体は高度にカスタマイズされており、UISearchBarに基づいていない場合もあります。彼らはたぶんUITextViewを使って完全にカスタムのUIViewを作成し、他のカスタムアニメーションを続けることになりました。それでも、UISearchBarを使用することで、自分が行っていることの多くを達成できます。

このようにすると、検索バーは同じ検索バーのままですが、コンテンツは下に変わります。たとえば、検索を行う場合は、検索結果が下に表示されますが、同じUISearchBarが上に表示されたままになります。

ChildViewControllerを使用しない場合(私はその方法をやめました)、UIViewをベースにしたオブジェクトを単一のUIViewController内で使用する方法があります。 UISearchBarは上部にありますが、おそらく親UIView内にあります。下のUIViewには、フィードとその他のものがすべて含まれています。再度、単一のUISearchBarを使用して検索し、必要に応じて下のUIViewの内容を変更します。

関連する問題