-2
위치를 전환하는 애니메이션을 만들었습니다. 애니메이션은 정상적으로 작동하지만 포 그라운드의 버튼을 파괴합니다.회전 배경 뷰의 애니메이션이 전경의 버튼과 겹칩니다.
버튼에 영향을 미치지 않아야합니다. 이 원인은 무엇입니까?
videoCGFloat speedFactor = 3.0;
CABasicAnimation *slotAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
[slotAnimation setToValue:[NSNumber numberWithFloat:M_PI_2]];
[slotAnimation setRemovedOnCompletion:NO];
[slotAnimation setFillMode:kCAFillModeBoth];
slotAnimation.duration = .3/speedFactor;
[[self.fromPositionTextField layer] addAnimation:slotAnimation forKey:@"slotAnimation"];
CABasicAnimation *slotAnimation2 = [slotAnimation copy];
[slotAnimation2 setBeginTime:CACurrentMediaTime()+0.3/speedFactor];
[[self.toPositionTextField layer] addAnimation:slotAnimation2 forKey:@"slotAnimation"];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.6/speedFactor * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSArray *positions = @[self.viewModel.fromPosition, self.viewModel.toPosition];
self.viewModel.fromPosition = positions[1];
self.viewModel.toPosition = positions[0];
CABasicAnimation *slotAnimation3 = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
[slotAnimation3 setToValue:[NSNumber numberWithFloat: M_PI *.125/4.0]];
[slotAnimation3 setRemovedOnCompletion:NO];
[slotAnimation3 setFillMode:kCAFillModeBoth];
slotAnimation3.duration = .3/speedFactor;
[slotAnimation3 setBeginTime:CACurrentMediaTime()+0.3/speedFactor];
[[self.fromPositionTextField layer] addAnimation:slotAnimation3 forKey:@"slotAnimation2"];
CABasicAnimation *slotAnimation4 = [slotAnimation3 copy];
[slotAnimation4 setBeginTime:CACurrentMediaTime()+0.6 /speedFactor];
[[self.toPositionTextField layer] addAnimation:slotAnimation4 forKey:@"slotAnimation2"];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.2/speedFactor * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.fromPositionTextField.layer removeAllAnimations];
[self.toPositionTextField.layer removeAllAnimations];
});
});