Лучший способ сделать анимацию UILabel в Cocoa Touch?

В прошлом, когда я хотел сделать красивую анимацию затухания от одного текста UILabel к другому, я добавлял следующее:

[UIView beginAnimations:@"fade" context:nil];
[UIView setAnimationDuration:0.25];
myLabel.alpha = 0.0;
myLabel.text = @"Different string";
myLabel.alpha = 1.0;
[UIView commitAnimations];

Как вы, наверное, заметили, метка быстро исчезает, меняется содержимое, а затем снова появляется.

Я видел некоторые случаи в других приложениях, где текст просто исчезал очень плавно — без быстрого исчезновения и обратно.

Это только у меня или есть лучший способ добиться этого?

Спасибо. Рики.


person Ricky D'Amelio    schedule 13.11.2010    source источник
comment
не приставать, а мой ответ...ответил на твой вопрос?   -  person griotspeak    schedule 14.11.2010


Ответы (1)


Надеюсь это поможет.

    -(void)showButton:(UIButton *)button {
        CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
        opacityAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
        opacityAnimation.toValue = [NSNumber numberWithFloat:1.0f];

        button.hidden = NO;

        [button.layer addAnimation:opacityAnimation 
                            forKey:@"opacity"];
    }

    -(void)hideButton:(UIButton *)button {

        CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
        opacityAnimation.fromValue = [NSNumber numberWithFloat:1.0f];
        opacityAnimation.toValue = [NSNumber numberWithFloat:0.0f];
        button.hidden = YES;

        [button.layer addAnimation:opacityAnimation 
                            forKey:@"opacity"];
    }
person griotspeak    schedule 13.11.2010