Mam pewien problem z CABasicAnimation. Jest podobny do tego posta: CABasicAnimation rotate returns to original positionCABasicAnimation jak uzyskać bieżący kąt obrotu
Mam więc uiimageview, który obracam w touchMove. W touchEnd wywołać metodę, która nie „animacja bezwładności”:
-(void)animationRotation: (float)beginValue
{
CABasicAnimation *anim;
anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
anim.duration = 0.5;
anim.repeatCount = 1;
anim.fillMode = kCAFillModeForwards;
anim.fromValue = [NSNumber numberWithFloat:beginValue];
[anim setDelegate:self];
anim.toValue = [NSNumber numberWithFloat:(360*M_PI/180 + beginValue)];
[appleView.layer addAnimation:anim forKey:@"transform"];
CGAffineTransform rot = CGAffineTransformMakeRotation(360*M_PI/180 + beginValue);
appleView.transform = rot;
}
Animacja ta działa dobrze, ale jeśli modlę touchBegan przed animationRotation skończyło, kąt obrotu jest beginValue. Potrzebuję kąt obrotu prądu cath. W ramach eksperymentu deklaruję metodę i wydaje się, że ta metoda działa. ale nie wiem, jak uzyskać tę wartość kąta lub CGAffineTransform dla mojego UIImageView w animationDidStop. Można to nawet zrobić? Dzięki.
Dzięki, próbowałem to, to działa, ale nie tak jak powinno. Użyłem animacji NSTimer .. ale dzięki i tak :-) – frankWhite
Rewizja dla metody uzyskiwania aktualnie widocznej rotacji warstwy. – geraldWilliam