2011-02-05 3 views
0

私はUINavigationBar、UIImageView、およびUITableViewを(上から下に)含むUINavigationControllerを持っています。私がスタックにプッシュするすべてのビューには、同じ場所にある同じUIImageViewが含まれています(これはロゴです)。iPhone UINavigationController:ビューの一部のみをアニメ化する

ロゴをUINavigationBarのすぐ下に置いて、アニメーションなしでビューをプッシュ/ポップするといいと思います。 可能ですか?

おかげ

+0

ロゴは別の画像ですか?それとも大きな画像の一部ですか? –

+0

ロゴは別画像です。それは、UINavigationBarとUITableViewとの間にあります。私はTableViewだけをアニメーション化したいと思う。何か案が? –

+0

私はあなたと同じ問題を抱えていたと思っています。スクリーンショットをすぐに追加して、あなたがより良いことを見ることができます。 –

答えて

0

アプリデリゲートにメインウィンドウに直接ロゴ画像ビューを追加することですこれを達成するために、私は考えることができる唯一の方法。ナビゲーションバーのすぐ下に表示されるように配置します。次に、ビューコントローラのビューの背景色をクリアしてopaqueプロパティがNOに設定されていることを確認してください。ビューのサイズを変更し、自動サイズ調整マスクを設定して、画面の下部(またはタブバーまたは下部のツールバーの上部)に固定します。

基本的に、完全に透明なビューの上部があるように、ビューコントローラのビューを設定する必要があります。この場合、メインウィンドウに直接追加したロゴイメージビューは常に表示されます。ナビゲーションコントローラを使用してビューコントローラ間をプッシュまたはポップするときは、ロゴイメージビューが表示される右上に透明になるように、すべてのビューコントローラのビューも同様に設定されていることを確認してください。ナビゲーションコントローラがトランジションをアニメーション化しても、ビューの上部の透明度は、ナビゲーションバーとそのサブビューとともに、ビューの不透明部分にアニメーションが表示されるようにするだけです。

希望は意味があります。

UPDATE:ノアウィザースプーンのコメントによれば、画像ロゴビューをナビゲーションコントローラのビューのサブビューとして追加するほうがよいでしょう。ビューコントローラのビューのサイズを変更して、ロゴイメージビューでその内容が不明瞭にならないようにする必要がありますが、このアプローチは全体的にはよりクリーンです。

+0

これは私が使用するアプローチではありません。ビューコントローラを透過的にすると、ビュー全体でかなりの合成コストがかかります。ナビゲーションコントローラのビューの上部**にロゴビューをウィンドウ**に追加する方がよいでしょう。そのようにして、画像ビューでカバーされる領域だけをブレンドする必要があります。 –

+0

ああ、はい、そうです。何らかの理由で、ロゴイメージビューをより適切に管理するだけであれば、これははるかに良いアプローチになります。私は実際には、私が提案した方法は、追加の合成コストにもかかわらず、かなりのパフォーマンスコストをもたらさないと完全に確信しています。 – LucasTizma

関連する問題