0

두 개의 UILabel (labelOnelabelTwo)이 있고 두 레이블 사이에 크로스 페이드가 필요하다고 말하십시오. 이 효과를 얻는 가장 좋은 방법은 무엇입니까?두 개의 UILabels 사이의 교차 페이드

나는 labelOne을-페이드 아웃 후 페이드에 labelTwo하는 [UIView beginAnimations:@"crossFade" context:nil]; 등을 사용하여 시도했지만 모두 라벨이 낮은 불투명하고 당신이 모두를 통해 볼 때 상당히 눈에 띄는 차이가있다. 좋은 깨끗한 크로스 페이드 효과가 필요합니다. 나는 CABasicAnimation을 사용할 필요가 있다고 느끼지만 약간의 지침에 감사드립니다. 미리 감사드립니다!

답변

2

다른 레이블을 페이드 아웃하면서 페이드 아웃합니다. 애니메이션의 절반 정도면 50 % 불투명도가됩니다. 알파를 별도로 제어하려면 각 레이블에 별도의 애니메이션을 사용하고 그 중 하나를 지연 시키십시오.

label_to_show.alpha = 0.0; 
label_to_hide.alpha = 1.0; 

[UIView beginAnimations:nil context:nil]; 

label_to_show.alpha = 1.0; 
label_to_hide.alpha = 0.0; 

[UIView commitAnimations]; 
0

당신은 애니메이션 커브와 함께 시도하고 받아 들일 수있는 모양을 찾을 수 있지만, 나는 페이드가 발생하는 동안 배경 모양을 유지하기 위해 두 라벨 밑에 세 번째 뷰를 유지하는 것이 더 좋을 것이라고 생각합니다.

한 번에 두 레이블을 동시에 볼 수 있다는 의미라면 레이블이 명확하지 않은 지점으로 빠르게 사라지지만 같은 수준의 새 레이블로 바꾼 다음 사라집니다 신속하게 완전한 가시성을 확보 할 수 있습니다.

필자는 "페이드"라고 말하지만 라벨 위에 배경색의 뷰를 놓고 그 뷰를 더 불투명하게 만들고 밑의 레이블을 전환 한 다음 다시 투명하게 페이드 화하는 것이 좋습니다.

+0

감사합니다. Adam. 추가보기를 사용하지 않고이 문제를 해결하는 다른 방법이 있습니까? 나는'UABabel' 사이의 성공적인 크로스 페이드를하기 위해 @ "불투명도"키를 사용하는 것에 대해 사람들이 말한 것처럼'CABasicAnimation'을 언급했지만이 방법에 접근하는 방법을 모르겠습니다. – Skoota

+0

위의 drawonward의 솔루션은 내가 설명한 것에 .alpha 속성을 사용하고 있습니다. 불투명도 키가 어떻게 다르게 보이게 할 지 모르겠습니다. 설명 된대로 페이드를 수행 할 때 라벨이 배경을 보여줄 수있는 정확한 문제입니까? 그렇다면 제 생각으로는 세 번째 관점이 놀랍게도 영리하지는 않을 것이라고 생각합니다. 그러나 그것은 많은 노력이 아니며 결과를 산출해야합니다. –

0

저는 이와 비슷한 것을 구현했으며 매우 잘 작동합니다.

[UIView transitionWithView:self duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ 
    _label1.hidden = YES; 
    _label2.hidden = NO; 
} completion:nil];