我有一个带文字和彩色背景的UIButton(大小100,100)。按下按钮时,我希望文本立即消失,按钮将动画大小更改为1000,1000。以下是我使用的代码:
[myButton setTitleColor:[UIColor colorWithRed:195/255.0f green:255/255.0f blue:180/255.0f alpha:0.0f] forState:UIControlStateNormal];
[UIView animateWithDuration:2.0f
delay:1.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myButton setBounds:CGRectMake(0, 0, 1000, 1000)];
}
completion:^(BOOL finished){
SetupView * sv = [[SetupView alloc] initWithNibName:nil bundle:nil];
//[self presentViewController:sv animated:NO completion:nil];
}
];
现在,如果我取出setTitleColor
,按钮会很好地扩展,但文本仍然存在(显然)。但是,保持setTitleColor
使按钮大小为0,0然后动画为100,100。当我用setTitleColor
替换setTitle:@""
时也会发生这种情况。我也尝试用相同的结果更改动画中的文字或颜色。
我觉得我错过了一些明显的东西,但我似乎无法看到它。
编辑:如果我不运行动画并且只是自己执行setTitleColor
或setTitle:@""
,则文本会按预期消失,并且按钮保持相同的大小。
答案 0 :(得分:0)
如果您想保留使用UIKit设置按钮样式的方式,只需修改动画块中的图层,而不是视图。
button.layer.transform = CATransform3DMakeScale(10,10,1)
使用视图的transform
属性甚至可能就足够了。
button.transform = CGAffineTransformMakeScale(10,10)
NB 10只是一个任意大的值。