Перекрестное затухание между двумя UILabels - PullRequest
0 голосов
/ 22 декабря 2010

Скажите, что у меня есть два UILabel s (labelOne и labelTwo), и мне нужно постепенно поменять местами эти две метки.Каков наилучший способ достижения этого эффекта?

Я пытался использовать [UIView beginAnimations:@"crossFade" context:nil]; и т. Д. Для постепенного исчезновения labelOne, а затем для постепенного увеличения labelTwo, но существует довольно заметный разрыв, когда обе меткиимеют низкую непрозрачность, и вы можете видеть через оба.Мне нужен хороший чистый эффект плавного перехода.У меня есть ощущение, что мне нужно будет использовать CABasicAnimation, но я был бы признателен за некоторые рекомендации.Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 22 декабря 2010

Это приведет к исчезновению одной метки (или любого вида) при добавлении другой. На полпути анимации, обе будут с непрозрачностью 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 голосов
/ 03 сентября 2013

Я реализовал что-то вроде этого, и это работает очень хорошо.

[UIView transitionWithView:self duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    _label1.hidden = YES;
    _label2.hidden = NO;
} completion:nil];
0 голосов
/ 22 декабря 2010

Вы можете поиграть с кривой анимации, попробовав найти приемлемый вид, но я думаю, что вам будет лучше, просто поддерживая третий вид под обеими метками, чтобы сохранить внешний вид фона, пока происходят затухания.

Если вы имеете в виду, что вы видите, что обе метки одновременно не исчезают одновременно, а быстро исчезают до точки, в которой метка начинает становиться неясной, замените ее новой меткой на том же уровне исчезновения, а затем исчезните быстро до полной видимости.

Я говорю «исчезать», но также может быть очень хорошо поместить фоновое изображение поверх надписей и перейти к тому, чтобы сделать это представление более непрозрачным, переключив надписи под ним, а затем снова сделав его прозрачным.

...