2012-03-19 2 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