我有这段代码:
- (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宽度,但在按下按钮时,文本会消失。怎么了?
答案 0 :(得分:1)
问题是按钮知道在动画结束时文本将无法显示(由于宽度),因此它隐藏了文本标签。为了获得您想要的效果,您可能希望使用CGAffineTransform
比例将其压缩为零宽度。