Сохранить эффект ряби над UIImageView - PullRequest
0 голосов
/ 19 марта 2012

Я хочу сохранить эффект Ripple на моем UIImageView. Я знаю, что мы можем анимировать изображение для получения волнового эффекта, но сохранить. Другими словами, я хочу рифленое изображение.

Я знаю, что мы можем анимировать изображение, используя

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

Но это оживляет, не сохраняет пульсацию. Я думаю, что мы можем получить волнистое изображение, если мы приостановим или остановим анимацию до ее окончания. Является ли это возможным? Как мы можем приостановить или остановить UIView Анимация ?

Если есть альтернатива этому трюку, пожалуйста, укажите это.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

Я получил свое решение,

использовал этот код

CFTimeInterval pausedTime = [imgRipple.layer convertTime:CACurrentMediaTime() fromLayer:nil];
     imgRipple.layer.speed = 0.0;
     imgRipple.layer.timeOffset = pausedTime;

и он остановился

2 голосов
/ 19 марта 2012

Я не уверен, дает ли это то, что вы хотите, но вы можете остановить анимацию, используя эти:

#import <QuartzCore/QuartzCore.h>

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

Вы можете получить текущее состояние перед остановкой анимации с помощью presentationLayer:

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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...