最近、iOS 5.0 SDKを使用するようにアプリケーションを更新しました。その中で、私はAlex Fajowski's OpenFlowカバーフローの実装を使用しています。iOS 5.0でOpenFlowを正しく動作させるにはどうしたらいいですか?
iOS 5.0でアプリケーションを実行すると、画像をスワイプするときにOpenFlowが不正な変換またはZ再配置を行っていることがわかりました。
OpenFlowをiOS 5.0 SDKで正しく動作させるためにできることはありますか?
最近、iOS 5.0 SDKを使用するようにアプリケーションを更新しました。その中で、私はAlex Fajowski's OpenFlowカバーフローの実装を使用しています。iOS 5.0でOpenFlowを正しく動作させるにはどうしたらいいですか?
iOS 5.0でアプリケーションを実行すると、画像をスワイプするときにOpenFlowが不正な変換またはZ再配置を行っていることがわかりました。
OpenFlowをiOS 5.0 SDKで正しく動作させるためにできることはありますか?
今日、私はついにこの問題の解決策を見つけました。明らかに、iOS 5では、z配置がもうアニメーション化されていません(あまりにも悪いので、ドキュメンテーションがそう言います)。これは、CATransform3Dへの正しい移行を含めることによって、このバグが修正される理由です。以前
:
leftTransform = CATransform3DIdentity;
leftTransform = CATransform3DRotate(leftTransform, SIDE_COVER_ANGLE, 0.0f, 1.0f, 0.0f);
rightTransform = CATransform3DIdentity;
rightTransform = CATransform3DRotate(rightTransform, SIDE_COVER_ANGLE, 0.0f, -1.0f, 0.0f);
は、今では次のようになります。
leftTransform = CATransform3DTranslate(CATransform3DIdentity, 0, 0, SIDE_COVER_ZPOSITION);
leftTransform = CATransform3DRotate(leftTransform, SIDE_COVER_ANGLE, 0.0f, 1.0f, 0.0f);
rightTransform = CATransform3DTranslate(CATransform3DIdentity, 0, 0, SIDE_COVER_ZPOSITION);
rightTransform = CATransform3DRotate(rightTransform, SIDE_COVER_ANGLE, 0.0f, -1.0f, 0.0f);
は、それが私を助けていたとして、それは、君たちがお役に立てば幸いです。
あなたがここにあるものよりも改善しましたが、それはスムーズに動作するようになりました(これは以前のようにiOS 4にあった方法です)。代わりに、あなたは(-setUpInitialStateに)上記のもののAfOpenFlowView.mで
、:leftTransform = CATransform3DTranslate(CATransform3DIdentity, 0, 0, SIDE_COVER_ZPOSITION/2.0);
leftTransform = CATransform3DRotate(leftTransform, SIDE_COVER_ANGLE, 0.0f, 1.0f, 0.0f);
rightTransform = CATransform3DTranslate(CATransform3DIdentity, 0, 0, SIDE_COVER_ZPOSITION/2.0);
rightTransform = CATransform3DRotate(rightTransform, SIDE_COVER_ANGLE, 0.0f, -1.0f, 0.0f);
インサイド-layoutCover:selectedCover:
CGFloat newZPosition = SIDE_COVER_ZPOSITION/2.0;
...
:アニメーションは、次のコードを配置します代わりにやっての今CABasicAnimation *zPositionAnimation = [CABasicAnimation animationWithKeyPath:@"zPosition"];
[zPositionAnimation setToValue:[NSNumber numberWithFloat:newZPosition]];
[zPositionAnimation setDuration:(animated ? .3 : 0.0)];
[zPositionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[zPositionAnimation setRemovedOnCompletion:NO];
[zPositionAnimation setFillMode:kCAFillModeForwards];
、:
aCover.layer.zPosition = newZPosition;
でそれを置き換えます
[aCover.layer addAnimation:zPositionAnimation forKey:nil];
あなたは条件付きによっては、それは、iOSの4または5
ベストで実行されているかどうかを
私の解決策を試しましたか?それは動作しましたか? –
はい、うまくいきましたが、アニメーションの「滑らかさ」に欠けていました。これは私が今投稿したものを追加することで修正されました(これは当初のコメントに基づいています)。 – boliva
は失礼transfomationの画像を投稿してくださいいずれかを有効にすることができます:) – jrturton
はい、私は同じ問題に直面しています、それは3D効果のイメージフリップのように見えます。誰かがいれば何らかの解決法を提供してください。 –
私はスクリーンショットを作成できません。なぜなら、無礼はスワイプで発生し、非常に速いからです。 –