0
drawRect 메서드 안에 모든 CALayers를 그립니다 뷰가 있습니다. 메서드 내에서 애니메이션을 시작하고 완료 블록에서 레이어와 그 하위 레이어를 슈퍼 레이어에서 제거합니다. 그러나 그것은 내 애니메이션의 하위 레이어로 계속 추가됩니다. 어떻게 이런 일이 일어나지 않도록합니까?애니메이션 작업이 완료되면 CALayer를 제거하는 방법은 무엇입니까?
- (void)drawRect:(CGRect)rect
{
...
[CATransaction begin];
{
[CATransaction setAnimationDuration: 5.0];//Dynamic Duration
[CATransaction setCompletionBlock:^{
[tutorialCircle removeFromSuperlayer];
[strokePart removeFromSuperlayer];
}];
...
for (NSUInteger i = 0; i < 3; i++)
{
strokePart = [[CAShapeLayer alloc] init];
strokePart.fillColor = [[UIColor clearColor] CGColor];
strokePart.frame = tutorialCircle.bounds;
strokePart.path = tutorialCircle.path;
strokePart.lineCap = tutorialCircle.lineCap;
strokePart.lineWidth = tutorialCircle.lineWidth;
...
[tutorialCircle addSublayer: strokePart];
내 하위 레이어와 하위 레이어가 애니메이션에 대해 한 번 표시되고 영원히 사라지는 것을 확인하려면 어떻게해야합니까?