2010-02-22 5 views
0

UIView 애니메이션으로 수퍼 뷰가 애니메이션 처리되는 UILabel의 텍스트를 변경할 수 있습니까?수퍼 뷰가 애니메이션으로 재생 될 때 UILabel의 텍스트 변경

컨테이너 뷰의 하위보기로 labelView가 있습니다. timerFired는 (이전이나 이후가 아닌) containerView가 애니메이션으로 처리되는 동안 호출됩니다. 애니메이션 중에 labelView의 setText를 호출하지만 텍스트는 변경되지 않습니다. 내가 한 일을 성취 할 수있는 방법이 있습니까?

편집 : 내 잘못 -이 작동합니다. 문제는 내 텍스트 업데이트 루틴 (캐스팅 문제)입니다.

답변

1

문제는 애니메이션이 작동하는 방식입니다. Core Animation은 초기 상태의 스냅 샷과 최종 상태의 스냅 샷을 효과적으로 가져 와서 그 사이를 보간합니다. 이것은 매우 효율적이지만 애니메이션 중간에 애니메이션이 적용되지 않는 속성 (예 : text)을 쉽게 엉망으로 만들지 않습니다. 이 문제를 해결하는 방법에는 여러 가지가 있지만 가장 간단한 방법은 두 개의 레이블을 만들고 함께 애니메이션을 적용하고 opacity 또는 hidden을 움직이는 것입니다. 이것은 일반적으로 당신에게 내가 원하는 것이라고 생각하는 cross-fade look을 줄 것입니다. 물론 자신 만의 CALayers을 관리하여이를 달성 할 수있는 많은 방법이 있지만 두 개의 UILabel 솔루션이 가장 간단합니다.

+0

나는 두려워했다. 내가 겪은 것은 점수 표시 줄을 따라 움직일 때 카운트 업하는 점수 표시입니다. –

+0

내 잘못 (위의 편집 참조), 원래 의도했던 것, 나는 단지 바보 같았습니다. 어쨌든 깊이있는 답변 주셔서 감사합니다. –

관련 문제