Я хочу повернуть изображение в круговой анимации. Как я могу сделать это простым способом? Я знаю, что это не сложно, но я новичок в iOS. Может ли кто-нибудь сказать мне правильный код?Могу ли я поворачивать UIImage вокруг центра с помощью анимации?
0
A
ответ
1
его мое решение:
- (void)startAnimation
{
[UIView animateWithDuration:.4 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
[self.loadingRingImageView setTransform:CGAffineTransformRotate(self.loadingRingImageView.transform, M_SQRT2)];
} completion:^(BOOL finished) {
if (finished)
{
[self startAnimation];
}
}];
}
1
[[self.<imageviewinstance> layer] addAnimation:[self rotationAnimation] forKey:nil];
Добавить анимацию, как указано выше, а ниже - код анимации.
- (CABasicAnimation *)rotationAnimation
{
CABasicAnimation *rotAnim = [CABasicAnimation animationWithKeyPath:@"position"];
[rotAnim setFromValue:[NSValue valueWithCGPoint:CGPointMake(100.0, 400.0)]];
rotAnim.toValue = [NSValue valueWithCGPoint:CGPointMake(300.0, 150.0)];
// rotAnim.duration = 5.0;
rotAnim.autoreverses = YES;
// rotAnim.repeatCount = HUGE_VAL;
rotAnim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
return rotAnim;
}
если выше не работает использовать этот
- (CABasicAnimation *)rotationAnimation
{
CABasicAnimation *move = [CABasicAnimation animationWithKeyPath:@"transform.rotation" ];
move.delegate = self;
[move setFromValue:[NSNumber numberWithFloat:0]];
[move setToValue:[NSNumber numberWithFloat:50]];
[move setDuration:10.0f];
move.autoreverses = YES;
}
+0
где написать этот код? –
+0
imageviewinstance in [[self.
0
ответ вопрос я задавался вопросом, есть ->
UIImageView *imageViewForAnimation = [[UIImageView alloc] initWithImage:imageToAnimate];
imageViewForAnimation.alpha = 1.0f;
CGRect imageFrame = imageViewForAnimation.frame;
//Your image frame.origin from where the animation need to get start
CGPoint viewOrigin = imageViewForAnimation.frame.origin;
viewOrigin.y = viewOrigin.y + imageFrame.size.height/2.0f;
viewOrigin.x = viewOrigin.x + imageFrame.size.width/2.0f;
imageViewForAnimation.frame = imageFrame;
imageViewForAnimation.layer.position = viewOrigin;
[self.view addSubview:imageViewForAnimation];
// Set up fade out effect
CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
[fadeOutAnimation setToValue:[NSNumber numberWithFloat:0.3]];
fadeOutAnimation.fillMode = kCAFillModeForwards;
fadeOutAnimation.removedOnCompletion = NO;
// Set up scaling
CABasicAnimation *resizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
[resizeAnimation setToValue:[NSValue valueWithCGSize:CGSizeMake(40.0f, imageFrame.size.height * (40.0f/imageFrame.size.width))]];
resizeAnimation.fillMode = kCAFillModeForwards;
resizeAnimation.removedOnCompletion = NO;
// Set up path movement
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
//Setting Endpoint of the animation
CGPoint endPoint = CGPointMake(480.0f - 30.0f, 40.0f);
//to end animation in last tab use
//CGPoint endPoint = CGPointMake(320-40.0f, 480.0f);
CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, viewOrigin.x, viewOrigin.y);
CGPathAddCurveToPoint(curvedPath, NULL, endPoint.x, viewOrigin.y, endPoint.x, viewOrigin.y, endPoint.x, endPoint.y);
pathAnimation.path = curvedPath;
CGPathRelease(curvedPath);
CAAnimationGroup *group = [CAAnimationGroup animation];
group.fillMode = kCAFillModeForwards;
group.removedOnCompletion = NO;
[group setAnimations:[NSArray arrayWithObjects:fadeOutAnimation, pathAnimation, resizeAnimation, nil]];
group.duration = 0.7f;
group.delegate = self;
[group setValue:imageViewForAnimation forKey:@"imageViewBeingAnimated"];
[imageViewForAnimation.layer addAnimation:group forKey:@"savingAnimation"];
Смежные вопросы
- 1. Как я могу надежно поворачивать изображение вокруг точки?
- 2. Могу ли я поворачивать прядильщик? Androidstudio
- 3. Как поворачивать подвидки вокруг своих собственных центров?
- 4. Velocity.js - вращение вокруг центра
- 5. Повернуть объект вокруг центра?
- 6. Повернуть линию вокруг центра
- 7. Как я могу повернуть UIImage вокруг моего местоположения
- 8. Rotate элемент линии вокруг центра
- 9. CALayer Вращение вокруг центра
- 10. Как поворачивать CALayer вокруг диагональной линии?
- 11. Поворот NSView вокруг центра
- 12. UIBezierPath вокруг UIImage с прозрачностью
- 13. Как сделать анимацию svg анимации вокруг центра фигуры?
- 14. Должен ли я поворачивать фон или поворачивать орфографическую камеру?
- 15. Поворачивать с помощью семафоров
- 16. Three.js - Как поворачивать камеру вокруг точки Vector3?
- 17. вращение вокруг центра с css3
- 18. Повернуть кнопку вокруг центра
- 19. MFMessageComposeViewController: Могу ли я представить это с помощью специальной анимации?
- 20. Android: Могу ли я слушать обновления анимации с помощью TransitionManager.beginDelayedTransition?
- 21. Уменьшение центра анимации UIView
- 22. Отразить изображение вокруг центра
- 23. Этап вращения вокруг центра
- 24. Перемещение UIImage вокруг UIScrollView
- 25. Как увеличить границу линии от центра с помощью анимации css
- 26. Как я могу сохранить UIImage в новом положении после анимации?
- 27. C# winforms как повернуть изображение (но не вокруг его центра)
- 28. вращать узел вокруг центра
- 29. Повернуть значок вокруг центра
- 30. CAShapeLayer вращается вокруг центра
где изображение в этом коде? –
Я думаю, что это не правильное решение? –
self.loadingRingImageView является UIImageView – Bimawa