今、私はUIScrollViewに一連のビューを設定しています。 UIScrollViewをカルーセルのように見せるには、ビューを歪ませる必要があります。つまり、ユーザーがスクロールすると、円のようにする必要があります。私はこれまで全く同じようなことをしたことはありませんが、CoreAnimationが問題になるとは思っており、OpenGLを使う必要があります。これがCoreAnimationやQuartzで可能なのであれば、ビューをワープする方法についてのサンプルが必要なだけで、残りの部分は自分で分かるはずですが、OpenGLに慣れていません。私の経験でCoreAnimationまたはOpenGLでカルーセル効果のビューをカーブ/ワープする
答えて
、価値が権利を取得する少しトリッキーです。ビューの視点を与える方法は、レイヤーの変換を操作することです。私は、同様の効果を得るためtransforを達成するために、以下の方法を使用しています
-(CATransform3D)makeTransformForAngle:(CGFloat)angle from:(CATransform3D)start{
CATransform3D transform = start;
// the following two lines are the key to achieve the perspective effect
CATransform3D persp = CATransform3DIdentity;
persp.m34 = 1.0/-1000;
transform = CATransform3DConcat(transform, persp);
transform = CATransform3DRotate(transform,angle, 0.0, 1.0, 0.0);
return transform;
}
これは、あなたが適応する必要があるかもしれませんので、「フリップページ」アニメーションを作成するために行われました。これを使用するには、次の操作を行います。
flip_page.layer.transform = [self makeTransformForAngle:angle from:CATransform3DIdentity];
flip_pageはUIViewです。乾杯!
ありがとう!私の主な問題は、上記のように個々のビューをワープすることです。あなたはこれについてどうやって行くのか知っていますか? –
私は参照してください。そのためにはもちろん、線形変換では不十分です。 OpenGLでメッシュを作成し、テクスチャをスラップできると確信しています。しかし、それは過剰なもののようです。私はこの質問が巧妙な答えになることを願っています;) – fsaint
これは、私が個々のビューにパースペクティブを追加することを可能にします。しかし、彼らはまた歪んでいる必要があります。 –
ビューをワーピングする場合は、OpenGLが必要です。また、Core AnimationのCAShapLayerを使用して、このカーブを持つことができるベジェパスを指定することもできます。しかし、あなたが見ているこのカーブは、錯視の可能性が高いことを覚えておいてください(上の画像では実際のカーブのように見えます)。正しいY軸の回転が行内にある十分な矩形が得られたら、まっすぐなCore Animationで探している効果を思いつくことができると思います。数年前にAppleが提供したCore Animationデモでは、そのことがどのように実装されているのか、私は確信しています。ここではそのプレゼンテーションからビデオからのスクリーンショットです:
私は、ビューのレイヤの少しを変換し、これを思い付いたと周りめちゃめちゃ:
- (IBAction)sliderDidChange:(id)sender
{
CGFloat value = [(UISlider*)sender value];
CGFloat xOff = value - 0.5;
CATransform3D trans = CATransform3DIdentity;
trans.m34 = 1.0f/-1000.0f;
trans = CATransform3DRotate(trans, degreesToRadians(xOff * -25.0f), 0.0f, 1.0f, 0.0f);
trans = CATransform3DTranslate(trans, 0.0f, 0.0f, 900.0f * fabs(xOff));
[[frameView layer] setTransform:trans];
CGPoint center= [frameView center];
[frameView setCenter:CGPointMake(1024.0 * value, center.y)];
}
私は方法を示して一緒にa demo projectを投げました回転はスライダに応答して機能します。それはスクロールビューを使用しないので、それを適応させる必要がありますが、現在のスクロールオフセットを追跡してそれに応じて変換を適用できると思います。それが助けになるかどうかは分かりませんが、そこにはあります。
- 1. iphoneでCAShapeLayerとCoreAnimationを使用した簡単な色付き効果?
- 2. OpenGL ESのメタリックスパークル効果?
- 3. OpenGL ESのハイライト効果
- 4. CGL対AGL対OpenGL対NSOpenGL対CoreAnimation(CALayer)
- 5. OpenGL:細胞分裂効果
- 6. OpenGL画面遷移効果?
- 7. JQueryを使用してこのカルーセル効果を達成するには?
- 8. OpenGLのラインに輝く効果を追加するには?
- 9. OpenGL ES 2.0で "グロー"シェーダ効果を得るには?
- 10. カルーセルからビューをドラッグする方法
- 11. カルーセルのようなibooksビュー
- 12. Ken BurnsのiPhoneビューでの効果
- 13. OpenGL ES塗りつぶし効果
- 14. PorterDuffの色彩効果は、特定のビューのビューのためにアンドロイドにあります
- 15. Iphoneに複数のOpenGL ESビュー用の効率的で標準化されたコードはありますか?
- 16. JavascriptまたはjQueryのテキストカラースライド効果?
- 17. IPhone OpenGL ESの1つまたは複数のビュー?
- 18. トランジション効果でビューを切り替える
- 19. OpenGLの「モーションドラッグ」効果 - フレームごとに画面をクリアしない
- 20. CoreAnimationでUITableViewCellを展開する
- 21. CoreAnimationでシェイプをアニメーション化する
- 22. のOpenGLに - GLビュー
- 23. OpenGLビューのコントロールを作成する
- 24. OpenGLまたはOpenGL ES
- 25. OpenGLのglBindFramebufferを使用しても効果がないようです。
- 26. スプリングマスシステムのダンピング効果(またはこのElasticEaseですか?)
- 27. jqueryまたはjavascriptで作成した効果的なgoogleマップの効果を教えてください。
- 28. Android opengl-es 1.x簡単な水面/海洋効果を作ります
- 29. TextViewはOpenGl Curlビューのエフェクトでクリックできません
- 30. SwiftのCoreAnimationとCAReplicatorLayer?
100%確かではありませんが、私はあなたのビューのレイヤプロパティにCATransform3Dを適用できると思います。 – jessecurry
ええ、私はこれについて少し読んでいますが、私はそれを実際に使用したことはありません。あなたはどんなサンプルも知っていますか? –