2011-04-05 3 views
4

最近私はiPhone用のプログラミングをやっていて、今はiPadのドメインに入っています。私が実現したいコンセプトは、osxのタイムマシンに似たナビゲーションに頼っています。つまり、通常のビューと同様に、パンとズームが可能なビューがいくつかあります。しかし、ビューは、第3次元(この場合は深さ)を使用して互いに積み重ねられます。ユーザは、この場合は文字をピックすることによって任意のビューにナビゲートし、選択された文字のビューに達するまでビューを飛ぶ。タイムマシンスタイルのナビゲーション

私の質問です:誰かがこれを行う方法の完全な最終的なコードを与えることができますか?冗談だ。私が必要とするのは、正しい方向へのプッシュです。なぜなら、これをやり始める方法がわからず、利用可能なフレームワークを使用することが可能なのかどうかです。任意のヒントが評価されています

ありがとう!

答えて

4

Core Animation(Core Animation上に構築されたUIViewアニメーションモデル)は、あなたの友人です。 Time Machineのようなインターフェイスを、ビューを親ビュー(縦軸にcenterプロパティを使用)で配置し、そのラインをさらに遠くに配置して、以下のものより少し小さくすることができますそれらのレイヤーのz-インデックスを設定する(ビューのlayerプロパティを使用してレイヤーを取得し、次にzPositionに設定する)ようにして、線の上にある線の上に表示されるようにします。ここにいくつかのサンプルコードがあります。

// animate an array of views into a stack at an offset position (0 has the first view in the stack at the front; higher values move "into" the stack) 
// took the shortcut here of not setting the views' layers' z-indices; this will work if the backmost views are added first, but otherwise you'll need to set the zPosition values before doing this 
int offset = 0; 
[UIView animateWithDuration:0.3 animations:^{ 
    CGFloat maxScale = 0.8; // frontmost visible view will be at 80% scale 
    CGFloat minScale = 0.2; // farthest-back view will be at 40% scale 
    CGFloat centerX = 160; // horizontal center 
    CGFloat frontCenterY = 280; // vertical center of frontmost visible view 
    CGFloat backCenterY = 80; // vertical center of farthest-back view 
    for(int i = 0; i < [viewStack count]; i++) 
    { 
     float distance = (float)(i - offset)/[viewStack count]; 
     UIView *v = [viewStack objectAtIndex:i]; 
     v.transform = CGAffineTransformMakeScale(maxScale + (minScale - maxScale) * distance, maxScale + (minScale - maxScale) * distance); 
     v.alpha = (i - offset > 0) ? (1 - distance) : 0; // views that have disappeared behind the screen get no opacity; views still visible fade as their distance increases 
     v.center = CGPointMake(centerX, frontCenterY + (backCenterY - frontCenterY) * distance); 
    } 
}]; 

そして、ここではそれがランダムに色の景色のカップルと、次のようになります。

Sample screenshot of Time Machine-esque effect

-2

Cover Flowとも呼ばれ、アートワークやアルバムを表示するためにiTunesでも使用されています。アップルは第三者からこの技術を購入したと思われ、特許も取得しているようだ。しかし、あなたがiosのカバーフローのためにGoogleの場合、あなたは正しい方向にあなたを指すヒットとコードをたくさん得るでしょう。

私は見ていませんが、おそらくiOSライブラリにあったとは思いますが、わかりません。

+0

私の知る限り、カバーフローは2つだけのディメンションを使用して、サイド・ナビゲーションへの唯一の側面であります。したがって、それは私が探しているものではありませんが、とにかく感謝します。 – Glitch

+0

CoverFlowはビューを左右にブラウズしています。タイムマシーンの注文は前面から後ろに向かっており、かなり違って見えます。 (これは意味がありますか?)http://www.macmacken.com/wp-content/files/timemachine_009.png –

0

これは右のようなものですか? enter image description here

「はい」の場合は可能です。あなたは、画像のようなビューを整理し、それらを前後に動かす必要があります。私が知る限り、これのためのフレームワークはありません。

関連する問題