1

UIButton.titleLabel像这样淡入/淡出几次:

[UIView beginAnimations:@"fadeOutText" context:NULL];
[UIView setAnimationDuration:1.0];
    button.titleLabel.alpha = 0.0f;
[UIView commitAnimations];

button.titleLabel.text = @"Changed text";

[UIView beginAnimations:@"fadeInText" context:NULL];
[UIView setAnimationDuration:1.0];
    button.titleLabel.alpha = 1.0f;
[UIView commitAnimations];

问题是我想在文本隐藏期间更改文本(alpha 为 0.0f)。但是当我淡入文本时,文本也会被动画化。它从标签右侧出现/移入。

有没有办法避免文本被动画化?

使用 相互调用淡入和淡出NSTimer

谢谢!

4

2 回答 2

0

试试这样:

[UIView animateWithDuration:1.0
                         animations:^{
                             button.titleLabel.alpha:0.0f;
                         }
                         completion:^(BOOL finished){
                              button.titleLabel.text = @"Changed text";
                         }
];
[UIView animateWithDuration:1.0
                         animations:^{
                             button.titleLabel.alpha:1.0f;
                         }
];
于 2013-07-03T10:23:39.773 回答
0

为文本更改添加单独的代码部分似乎会删除文本的动画。

我就是这样解决的,也许有更好的解决方案?

-(void)hideText{
    [UIView beginAnimations:@"fadeOutText" context:NULL];
    [UIView setAnimationDuration:1.0];
        button.titleLabel.alpha = 0.0f;
    [UIView commitAnimations];
    [NSTimer scheduledTimerWithTimeInterval:1.0
                                     target:self
                                   selector:@selector(setText)
                                   userInfo:nil
                                    repeats:NO];
}
-(void)setText{
    [button setTitle:@"changedText" forState:UIControlStateNormal];
    [NSTimer scheduledTimerWithTimeInterval:0.1
                                 target:self
                               selector:@selector(showText)
                               userInfo:nil
                                repeats:NO];
}
-(void)showText{
    [UIView beginAnimations:@"fadeInText" context:NULL];
    [UIView setAnimationDuration:1.0];
        button.titleLabel.alpha = 1.0f;
    [UIView commitAnimations];
}
于 2013-07-03T10:25:43.627 回答