动画时,UILabels文本消失

时间:2014-05-30 21:00:58

标签: objective-c

我有这段代码:

- (void)my_button_tapped
{
if (my_button.tag == 0)
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    my_label.frame = CGRectMake(450, 455, 200, 20);
    [UIView commitAnimations];

    [my_button setBackgroundImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];
    my_button.tag = 1;
}
else
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    my_label.frame = CGRectMake(450, 455, 0, 20);
    [UIView commitAnimations];

    [my_button setBackgroundImage:nil forState:UIControlStateNormal];
    my_button.tag = 0;
}
}

当我第一次点击my_button时,标签会扩展为200px宽度,当我再次按下按钮时,标签会减小到0px宽度,但在按下按钮时,文本会消失。怎么了?

1 个答案:

答案 0 :(得分:1)

问题是按钮知道在动画结束时文本将无法显示(由于宽度),因此它隐藏了文本标签。为了获得您想要的效果,您可能希望使用CGAffineTransform比例将其压缩为零宽度。