2

UIImageViews、UILabels、UITextViewを備えたUIViewがあります。

私の目標は、中央部分を一枚の紙を折りたたむように変形することです。-上部と下部は同じままですが、互いにスライドするだけです。-中央部分は画面に向かって折りたたまれます(Clear app:http:// blogのように) .massivehealth.com / post / 18563684407 / clear?cbe4fc38

私のアイデアは、最初にビュー全体をロードし、次に4つの部分に分割し、中央の2つの部分をCGImageに作成し、上部と下部の部分を同時に変換しながら、何らかの方法でそれらを遠近法でアニメーション化することでした(最終的に、中央の2つの部分は見えない)。

また、このビューを展開してUITextViewをスクロールできるはずです。

私はすぐに使える答えを探しているのではなく、正しい解決策への指針を探しています。CALayer、CABasicAnimation、CGImageに出くわしましたが、これを解決する方法がわかりません。

4

2 に答える 2

2

あなたのアプローチは健全だと思います。ビューの一部に変換を適用することはできないため、コンテナー ビューを別々の部分に分割する必要があります。CALayerメソッドrenderInContext:を使用して、ビューを静的イメージにレンダリングできます。次に、この画像を必要な部分に分割し、画像部分を元のビューの上に配置 (またはビューを画像で置き換え)、画像をアニメーション化できます。アニメーションが終了したら、ビューを新しい形式に戻します。

于 2012-06-02T14:59:16.103 に答える
1

いくつかの指針:

  1. あなたを画像に変換しますUIView:この投稿を参照してください; ビューの4つの「スナップショット」を撮るか、次のいずれかです。

    1.2 1つを取り、結果の画像をトリミングします(トリミングについてはこちらを参照してください)。

  2. 新しいビューを作成し、self.layer;のサブレイヤーとして4つのCALayerを追加します。各レイヤーのcontentsプロパティは、対応するUIImage;に設定されています。

  3. 必要に応じてビューレイヤーをアニメーション化します。Leavesフレームワークからこのファイルを見て、これがどのように行われるかを確認してください。基本的に、このコードはCATransactionと変換を使用してレイヤーのプロパティをアニメーション化し(この場合、あるレイヤーが別のレイヤーを尊重する位置を表します)、そのプロパティ値が変更されると、それに応じてレイヤーが再描画されます。

それが役に立てば幸い。

于 2012-06-02T15:28:10.510 に答える