애니메이션을 시작해야하는 함수가 있습니다. 삼각형은 "drawrect"로 디자인되어 있으며 컨트롤러에 버튼이 있습니다.이 버튼을 누르면 "startTriangleAnimation"이 호출됩니다.애니메이션 메쏘드 호출 UIView 애니메이션
문제는 "startTriagnleAnimation"이 애니메이션을 추가하지 않는 것입니다. NSLOG를 인쇄하기 때문에 프로그램이이 메서드에 들어 있다고 확신합니다.
누구나 어떻게 해야할지 알고 있나요?
- (void)startTriangleAnimation
{
[self setNeedsDisplay];
if (_leftFoot) {
NSLog(@"LEFT FOOT ANIMATION STARTING");
[UIView animateWithDuration:15
delay:0
options: UIViewAnimationOptionCurveLinear
animations:^{
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-FIRST_ROTATION));
} completion:^(BOOL finished) {
[UIView animateWithDuration:15
delay:0.5
options: UIViewAnimationOptionCurveLinear
animations:^{
self.transform = CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(-SECOND_ROTATION));
} completion:^(BOOL finished) {
[UIView animateWithDuration:15
delay:0.5
options: UIViewAnimationOptionCurveLinear
animations:^{
self.transform = CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(-THIRD_ROTATION));
}completion:^(BOOL finished) {
[UIView animateWithDuration:15
animations:^{
self.transform = CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(-FOURTH_ROTATION));
}];
}];
}];
}];
} else {
NSLog(@"RIGHT FOOT ANIMATION STARTING");
[UIView animateWithDuration:15
delay:0
options: UIViewAnimationOptionCurveLinear | UIViewAnimationOptionBeginFromCurrentState
animations:^{
NSLog(@"animating");
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(FIRST_ROTATION));
} completion:^(BOOL finished) {
[UIView animateWithDuration:15
delay:0.5
options: UIViewAnimationOptionCurveLinear | UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.transform = CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(SECOND_ROTATION));
} completion:^(BOOL finished) {
[UIView animateWithDuration:15
delay:0.5
options: UIViewAnimationOptionCurveLinear | UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.transform = CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(THIRD_ROTATION));
}completion:^(BOOL finished) {
[UIView animateWithDuration:15
animations:^{
self.transform = CGAffineTransformRotate(self.transform, DEGREES_TO_RADIANS(FOURTH_ROTATION));
}];
}];
}];
}];
}
}
- (void)drawRect:(CGRect)rect
{
CGFloat x = self.bounds.size.height;
CGFloat y = self.bounds.size.width;
[[UIColor redColor] setStroke];
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(x/2, y - 20)];
[path addLineToPoint:CGPointMake(x/2 - 10, y)];
[path addLineToPoint:CGPointMake(x/2 + 10, y)];
[path closePath];
[path fill];
//[path stroke];
if (_leftFoot) {
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(10));
} else {
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-10));
}
}
그 코드 들여 쓰기가 내 눈을 아프게합니다. 내 심장 –
그 코드 식별은 – Vannian