Может кто-нибудь сказать мне, как повернуть изображение в круговом движенииiphone вращение UIImageView
ответ
Если вы имеете в виду, «Как вы сделать изображение по круговому пути», то псевдокод будет:
image.x = circleCentre.x + cos(angle) * circleRadius;
image.y = circleCentre.y + sin(angle) * circleRadius;
angle += 5;
This question спрашивает одно и то же, хотя в разных словах. Ответы в этом вопросе, а также в this question должны обеспечить способ анимации UIView (UIImageView - это просто подкласс этого) вокруг его центра на 360 градусов и более.
Вы можете поворачивать представление некоторым количеством радианов, независимо от того, меньше ли оно полного вращения или много кратных полного вращения, без необходимости разделить поворот на куски. Например, следующий код будет вращать просмотр один раз в секунду в течение заданного количества секунд. Вы можете легко изменить его, чтобы вращать вид на определенное количество вращений или на некоторое количество радианов.
- (void) runSpinAnimationWithDuration:(CGFloat) duration;
{
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];
rotationAnimation.duration = duration;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = 1.0;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[myView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
на основе ответа mahboudz, вы можете установить его бесконечно спина, установив:
rotationAnimation.repeatCount = HUGE_VALF;
Создание анимации
- (CABasicAnimation *)spinAnimationWithDuration:(CGFloat)duration clockwise:(BOOL)clockwise repeat:(BOOL)repeats
{
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
anim.toValue = clockwise ? @(M_PI * 2.0) : @(M_PI * -2.0);
anim.duration = duration;
anim.cumulative = YES;
anim.repeatCount = repeats ? CGFLOAT_MAX : 0;
return anim;
}
Добавьте его к виду
CABasicAnimation *animation = [self spinAnimationWithDuration:1.0 clockwise:YES repeat:YES];
[self.spinningView.layer addAnimation:animation forKey:@"rotationAnimation"];
Как этот ответ отличается от ответа @ mahboudz? У вас будет более чистый код, если большинство ваших функций возвращают объекты, а не просто манипулируют некоторыми объектами здесь и там.
Наверное, U r запутался в поворотах и оборотах. Этот вопрос касается революции. – Biranchi