2009-05-20 12 views
-2

iphoneアプリには、OS X Dockをiphoneに実装することができます。私のアイデアは、私のアプリで選択することができます5つの通常のメニューを持っていると、個々のアイコンを拡大し、オプションを選択したときにあなたが待っていたときにアイコンがバウンスするメニューを指でスワイプするときです。OS XドックはIphoneアプリにありますか?

私は個人的に私のアプリでこれを愛するだろうが、私はそれができるかどうか疑問に思っています。それはあまりにもCPU集中ですか? Core Graphicsでこれを行うことができるのか、OpenGL ESが必要なのでしょうか?

すべての方に感謝します。

答えて

1

コアアニメーションフレームワークは、議論しているアニメーションの種類(バウンス、スケーリング)に適しています。 OpenGLよりもはるかに簡単だと思います。ここ

は、0.2秒の持続時間にわたって148をy座標にアイコンを移動するアニメーションべきコードスニペットである:

[UIView beginAnimations: @"iconBounce" context: NULL]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(iconBounceAnimationDidStop:finished:context:)]; 

CGRect iconPosition = iconImageView.frame; 
iconPosition.origin.y = 148; //bounce up 
iconImageView.frame = iconPosition; 

[UIView setAnimationDuration: 0.2]; 
[UIView commitAnimations]; 

セレクタiconBounceAnimationDidStop:finished:context:アニメーションが完了したときに呼び出されるメソッドを表します。このメソッドを記述すると、アイコンを元の位置に戻してバウンスを完了させることができます。

0

おそらく、そのようなグラフィック処理にはOpenGLを使用します。テクスチャマッピング/スケーリングはOpenGLで非常に効率的に行われます。

あなたのアイデアの問題は、これが「他のアプリを開くアプリ」になるということです。

+0

他のアプリを開く必要はありません。私は自分のアプリのオプションを持っているつもりです。電子メールのアイコン、情報を取得するためのアイコンなど。 – TheGambler

0

これはCore Animationで完全に実行可能ですが、ユーザーとのやりとりの問題が発生します。 Macでは、マウスのドラッグとクリックの区別があります。しかし、iPhoneでは、指だけしか持っておらず、直接のやりとりに慣れています。つまり、上下にタップして選択しています。この他のモードでは、タップ・リフト・リフト(アイコンを大きくする)がタップ・リフト(選択)とは異なる何かをするかもしれないと言っています。また、アイコンストリップを指でドラッグすると、現在の(拡大された)アイコンは常に指の下に表示され、表示されないアイコンなので、調整する必要があります。

これは実行可能ですが、ユーザーエクスペリエンスを考えることができます。それはクールな音のように聞こえますが、私の推測によれば、それは見た目に気分が悪い直接の相互作用の環境でちょうどいい感じになるように調整することです。アップルがそれを試してみて、それに反対するなら、私は驚くだろう。

3

5は、UITabBarControllerに完全に収まるアイコンの正確な数で、Apple iPhone Human Interface Guidelinesに準拠したビュー間を簡単に切り替えることができ、iPhoneユーザーにとっては使い慣れたものになります。ここで

はUITabBarControllerでアプリケーションを作成する方法を示すビデオだ:

http://www.screentoaster.com/watch/stVUpUQEVLQVteRl1eXFxf/iphonedev_101_uitabbarcontroller

あなたはまだあなたが本当にOS XのDockのようなものを持っている必要があります感じた場合、私はコアを使用してお勧めしますアニメーション。

カスタムビューを作成し、初期コードで各ドックアイコンにCALayerを追加します。 touchesMovedイベントを実装して指の位置を検出し、アイコンレイヤの境界や位置のプロパティを変更して移動/サイズ変更します。 OS Xの動作を試してみるのに使うアイコンサイズとアニメーションモードを調整するアルゴリズムを微調整する必要がありますが、カーソル(またはこの場合は指)からの距離に基づく線形歪みだと思います)。

アイコンをデフォルトの位置にリセットするコードを実装し、アイコンに必要なアクションをtouchesEndedに起動します。

アイコンをバウンスするには、kCAMediaTimingFunctionEaseInEaseOutタイミング機能を使用してCABasicAnimationを使用して位置をアニメートし、繰り返して自動再生を有効にすることができます。

関連する問題