UIView动画表现不正常

时间:2015-04-10 19:13:06

标签: ios objective-c iphone uiview

我有一个带文字和彩色背景的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:@""时也会发生这种情况。我也尝试用相同的结果更改动画中的文字或颜色。

我觉得我错过了一些明显的东西,但我似乎无法看到它。

编辑:如果我不运行动画并且只是自己执行setTitleColorsetTitle:@"",则文本会按预期消失,并且按钮保持相同的大小。

1 个答案:

答案 0 :(得分:0)

如果您想保留使用UIKit设置按钮样式的方式,只需修改动画块中的图层,而不是视图。

 button.layer.transform = CATransform3DMakeScale(10,10,1)

使用视图的transform属性甚至可能就足够了。

button.transform = CGAffineTransformMakeScale(10,10)

NB 10只是一个任意大的值。