2012-03-19 4 views
0

私のUIImageViewにリプル効果を残したいと思います。私はリップル効果のためにイメージをアニメートできますが、保存することができます。言い換えれば、私は波紋のあるイメージがほしいと思う。UIImageViewでリプル効果を維持する

私たちは

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:25.0]; 
[UIView setAnimationTransition:(UIViewAnimationTransition) 110 forView:imgRipple cache:NO]; 
[UIView commitAnimations]; 

を使用してイメージをアニメーション化することができます知っている。しかし、それはアニメーション化、リップルを保持しません。終了する前にアニメーションを一時停止または停止すると、波紋が現れることがあります。出来ますか?どのように私たちは一時停止または停止することができますUIViewのアニメーション

このトリックに代わるものがある場合は、親切に言及してください。

ありがとうございました。

答えて

3

私は、私の解決策を持って

CFTimeInterval pausedTime = [imgRipple.layer convertTime:CACurrentMediaTime() fromLayer:nil]; 
    imgRipple.layer.speed = 0.0; 
    imgRipple.layer.timeOffset = pausedTime; 
このコードを使用

一時停止

+1

私はそれを見つけましたhttps://developer.apple.com/library/ios/#qa/qa2009/qa1673.html – HarshIT

+2

これは良い解決策です。あなたがそれを見つけてうれしいです。 – erkanyildiz

2

私はそれが何をしたいあなたを与えるかどうかわからないんだけど、あなたがそれらを使用してアニメーションを停止することができます。

#import <QuartzCore/QuartzCore.h> 

[CATransaction begin]; 
[myView.layer removeAllAnimations]; 
[CATransaction commit]; 

あなたはプレゼンテーション層を使用してアニメーションを停止する前に、現在の状態を取得することができます:

CALayer* myPreLayer = [myView.layer presentationLayer]; 
CATransform3D currentTransform = [myPreLayer transform]; 
//if you need some specific info, you can use key-value pairs 
float currentAngle = [[myPreLayer valueForKeyPath:@"transform.rotation.z"] floatValue]; 
+0

申し訳ありませんが、一時停止ではなくアニメーションが停止します。コール時にイメージを元の状態にリセットします。 – HarshIT

+1

presentationLayerから現在の状態を取得し、手動で設定できます。 – erkanyildiz

+0

presentationLayer、それはプロパティですか?どのようにそれにアクセスする、任意のアイデア? – HarshIT

関連する問題