2010-04-14 4 views
1

Core Animation을 사용하여 CALayers의 속성 이외의 다른 것을 변경할 수 있습니까? 내 모델 클래스의 값을 변경하기 위해 간단한 속성 애니메이션을 사용하고 싶습니다. 이런 식으로 뭔가 : 다음CALayers없이 코어 애니메이션을 사용할 수 있습니까?

CABasicAnimation* anim = [CABasicAnimation animation]; 
anim.keyPath = @"someProperty"; 
anim.fromValue = [NSNumber numberWithFloat: 0.0]; 
anim.toValue = [NSNumber numberWithFloat: 1.5]; 
anim.duration = 1.0; 
anim.timingFunction = [CAMediaTimingFunction 
    functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

그리고 애니메이션이 완료 될 때까지 [anim update] 뭔가를 호출합니다.

답변

1

레이어 클래스 (CALayer 및 그 하위 클래스)는 Core Animation의 기초입니다. 이러한 클래스는 표시 할 내용을 제공합니다. 따라서 CALayers를 사용하지 않고 Core Animation을 사용할 수 없습니다.

나는 Apple's description of Core Animation을 통해 읽을 것을 제안합니다. 설명하는대로 Core Animation 클래스 CABasicAnimation을 사용하여 모델 클래스에 애니메이션의 지속 기간 동안 특정 값이 무엇인지 알려야합니다. Core Animation의 수업은 그런 방식으로 사용하도록 설계되지 않았으며 Core Animation 프레임 워크 외의 다른 수업과 함께 사용되도록 설계되지 않았습니다.

정말로 찾고있는 것은 애니메이션이 아닌 순수 수학적 관점에서 값 사이의 시간 보간을 제공 할 수있는 클래스/라이브러리입니다. 아마도 당신을 위해 그것을 할 수있는 오픈 소스 코드가있을 것입니다.

1

CALayer 자체를 사용하지 않고 CALayer에서 작동하는 CABasicAnimation을 사용할 수 있습니다. - (id) presentationModel을 질의한다. 이 방법으로 애니메이션을 적용 할 CALayer에 자체 키를 추가 할 수도 있습니다.

관련 문제