2010-04-10 3 views
0

iPhone에서 -addSublayer : 또는 -removeFromSuperlayer를 사용하여 표시 레이어의 레이어에 하위 레이어를 추가하는 경우 해당 하위 레이어가 애니메이션 방식으로 표시되거나 사라지지 않아야합니다 (예 : 페이드 인 또는 페이드 아웃). 내 프로그램은 레이어가 아닌 뷰를 사용하여 움직입니다. 위치 나 이미지 내용과 같은 레이어의 속성을 변경하면 변경 내용이 애니메이션으로 적용됩니다 (부모 레이어 주위의 레이어 줄무늬, 이전 이미지에서 새 이미지로 레이어가 사라짐). 따라서 레이어가 분명하게 표시됩니다. & 설정이 올바르게 표시됩니다. . 그러나 하위 레이어를 추가하거나 제거하면 즉시 변경됩니다. 애니메이션이 없습니다.iPhone에서 애니메이션 레이어 추가/제거

참조를 읽으면 레이어가 표시되면 덧셈이나 제거 할 때 하위 레이어가 애니메이션 처리되어야한다고 말합니다.

내가 뭘 잘못하고 있니? 누구나 비슷한 문제가 있었고 해결책을 찾을 수 있었습니까?

+0

하위 레이어 추가는 기본적으로 애니메이션으로 적용되지 않습니다. 하위 레이어가 추가되거나 제거 될 때 애니메이션이 적용되어야한다는 것을 어디에서 읽었습니까? – Tom

답변

3

당신이 다음 CATransition을 사용할 수 있습니다 페이드 원하는 경우 :

CATransition* transition = [CATransition animation]; 
transition.delegate = nil; 
transition.duration = 0.3; 
transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]; 
transition.type = kCATransitionFade; 
[theLayer addAnimation: transition forKey: nil]; 

그냥 #import <QuartzCore/QuartzCore.h>에 있는지 확인하고 프레임 워크를 연결합니다. 하위 레이어를 추가하거나 제거하기 직전에이 블록을 호출하십시오.

관련 문제