web-dev-qa-db-ja.com

一部のカスタムiOSアプリがネイティブのナビゲーションバーを使用するのはなぜですか?

私はInstagramまたはFoursquareについて話している、それらはカスタム設計されていますが、ナビゲーションのためにデフォルトのテーマメニューバーを使用しています。その背後にある汚い秘密はありますか?

6
Shalvius

これは、ユーザーが簡単に認識できるためです。 Apple彼らの標準インターフェース要素を使用して強調 iOSヒューマンインターフェースガイドライン

IOSでは、UIKitフレームワークは、アプリケーションで使用できる幅広いUI要素を提供します。アプリのユーザーインターフェースを設計するときは、ユーザーは標準のビューとコントロールが組み込みのアプリケーションと同じように動作することを期待していることを忘れないでください。アプリケーションでこれらの要素を適切に使用する限り、これは有利です。

また、アプリはある程度カスタマイズされることも理解しています。 InstagramとFoursquareがすでにいくつかのカスタマイズを行っているという事実は、ネイティブナビゲーションバーなどの特定の規則に固執するより多くの理由を彼らに与えます。これにより、iOSデバイスを使用する場合に、ユーザーを使い慣れたユーザーエクスペリエンスに固定できます。 わずかにナビゲーションバーの外観が変更されたことにも注意する必要があります(色がわずかに異なり、茶色がかった「古い」外観がシェーディング)。

enter image description here

Appleもこれには問題ありませんが、特定の方法で行うことをお勧めします。

外観以外のすべての標準UI要素を複製するカスタムUI要素を作成する場合は、代わりに、iOS 5以降で使用可能な外観カスタマイズプログラミングインターフェイスの使用を検討する必要があります。これらのAPIを使用すると、ほとんどのUI要素の外観をカスタマイズしながら、外観の自動更新を受け取ることができます。

9
Matt Rockwell

答えは簡単だと思います。独自のバージョンのUINavigationControllerをロールすることは、複雑で時間がかかるプロセスです(私たちはそれを実行しており、かなり時間がかかりました)。アニメーションはおそらく複製するのが最も難しい部分です。 iOSシミュレーターの[設定]アプリの[スローアニメーションの切り替え]を使用して、ナビゲーションバーのアニメーションが遅くなっていることを確認できます。いくつかのことが同時に進行しています。

ティントや透明度など、いくつかの変更や微調整をiOS標準のナビゲーションバーに加えることができますが、目標がカスタムナビゲーションバーである場合、これらはそれほど遠くまでは行きません。

サブクラス化を使用して、メインのナビゲーションバーの背景を入れ替えるなど、いくつかの基本的な変更を行うことができると思います(私はプログラマーではなくデザイナーなので、ゴスペルとしてより技術的な側面をとらないでください)。ボタンとアニメーションが標準に見えるので、私はこれがInstagramがやっていることを疑っています。

IOS 5のみを使用する場合、UIAppearanceを使用して、ナビゲーションバーとボタンの一部をカスタム要素できれいに置き換えることができます。必要に応じて、UIAppearanceで十分な場合があります。

カスタムルートを使用する場合は、Appleのサイズを維持する価値があります。ナビゲーションバーの高さは44ピクセルのRetinaピクセルではありません。これは、太い人間の指に適したタップサイズです。

参考文献:

3
Marc Edwards

その質問への本当の答えを知るには、Instagram、Foursquare、...に質問する必要があります。

私はあなたに私の推測を与えることができるだけです。このアプローチを選択する際の考慮事項は、UXのルーツではなく技術的なルーツがあると想像できます。 iPhoneアプリを設計するための組み込みアプリケーションテンプレートの1つを選択する方がはるかに迅速で簡単です。これは、UIの他の部分に関係なく、実際には非常に重要です。ただし、UI自体を簡単にすることもできます。

1
Bart Gijssens