Анимации не происходит на моем UILabel - PullRequest
0 голосов
/ 07 ноября 2010

Я написал анимацию для некоторых изображений, и она работает.Это снова та же анимация, но на этот раз на UILable.Но, похоже, ничего не имеет.Метка отрисовывается, но когда я вызываю метод анимации, текст не меняется / не перемещается.

-(void) bounceText
{

NSLog(@"Bounce Text");
CABasicAnimation *grow;
grow = [CABasicAnimation animationWithKeyPath:@"growText"];
grow.timingFunction = [CAMediaTimingFunction 
    functionWithName:kCAMediaTimingFunctionLinear];
grow.toValue = [NSNumber numberWithFloat:3.0];
grow.fromValue = [NSNumber numberWithFloat:0.1];
grow.repeatCount = 10;
grow.fillMode = kCAFillModeForwards; 
grow.removedOnCompletion = YES;
grow.duration = 5.0;
grow.autoreverses = NO;
grow.delegate = self;


CABasicAnimation *fade;
fade = [CABasicAnimation animationWithKeyPath:@"fade"];
fade.fromValue = [NSNumber numberWithFloat:0.5];
fade.toValue = [NSNumber numberWithFloat:1.0];
fade.duration = 5.0;
CALayer *layer = [CALayer layer];
hintsLabel.layer.transform=CATransform3DTranslate(CATransform3DIdentity, 0, 0,50);   

[CATransaction begin];
[hintsLabel.layer addSublayer:layer];
[hintsLabel.layer addAnimation:grow forKey:@"growTheText"];
[layer addAnimation:fade forKey:@"fadeText"];
[CATransaction commit]; 
}

Вызов метода и добавление текста к метке

 -(void) drawHints
 {
if (gameState == SHOWCARD)
{
    hintsLabel.layer.zPosition = 5;
    hintsLabel.text = @"It's your turn, select a button!";
    if (!bounce)
    {
    [self bounceText];
        bounce = YES;   
    }
}
}

Это меткине может быть преобразован?

Играю с этим уже час и ничего не происходит -.-

Спасибо -Код

1 Ответ

4 голосов
/ 07 ноября 2010

Основная проблема заключается в том, что вы не указываете свойства для анимации. Документация для CAPropertyAnimation гласит следующее для animationWithKeyPath: метод:

Ключевой путь к анимируемому свойству.

Я не уверен на 100%, чего вы пытаетесь достичь с помощью анимации, но где у вас есть следующий код:

fade = [CABasicAnimation animationWithKeyPath:@"fade"];

это должно быть:

fade = [CABasicAnimation animationWithKeyPath:@"opacity"];

потому что вы хотите повлиять на непрозрачность метки, чтобы она исчезла или исчезла. Таким образом, чтобы сделать метку с прозрачностью от 0,5 до 1,0 в течение 5 секунд, вы должны использовать следующий код:

    CABasicAnimation *fade;
fade = [CABasicAnimation animationWithKeyPath:@"opacity"];
fade.fromValue = [NSNumber numberWithFloat:0.5];
fade.toValue = [NSNumber numberWithFloat:1.0];
fade.duration = 5.0;

[hintsLabel.layer addAnimation:fade forKey:@"fade"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...