UIAnimation原因按钮titleLabel在动画期间消失

时间:2012-07-11 08:43:33

标签: iphone objective-c ios uibutton uianimation

我提交这个简单的动画,导致按钮缩小到宽度0:

[UIView animateWithDuration:0.2
                 delay: 0.0
                 options: UIViewAnimationOptionCurveEaseIn
                 animations:^{
                     [btnActionButton setFrame:CGRectMake(160, 10, 0, 55)];
                 }
                 completion:^(BOOL finished){
                 }];

现在的问题是,一旦动画开始,按钮的titleLabel会自动隐藏......我确定使用模拟器的slowAnimation模式。

在动画过程中,标签是否也可能随帧缩小,因为如果按钮标题在开头消失,它似乎很尴尬。

提前致谢。 奥贝德

3 个答案:

答案 0 :(得分:3)

这是因为宽度为0。

使用以下代码。

[UIView animateWithDuration:0.2
             delay: 0.0
             options: UIViewAnimationOptionCurveEaseIn
             animations:^{
                 [btnActionButton setFrame:CGRectMake(160, 10, 50, 55)];
             }
             completion:^(BOOL finished){
             }];

代替50,在动画后给出你想要按钮的宽度。

答案 1 :(得分:1)

          [UIView animateWithDuration:0.2
                      delay: 0.0
                    options: UIViewAnimationOptionCurveEaseIn
                 animations:^{
                     [btnActionButton.titleLabel setCenter:CGPointMake(-64, btnActionButton.titleLabel.center.y)];
                     [btnDeleteButton setFrame:CGRectMake(160, 10, 128, 55)];
                 }
                 completion:^(BOOL finished){
                     [btnActionButton setFrame:CGRectMake(160, 10, 0, 55)];
                     [btnActionButton.titleLabel setCenter:CGPointMake(0, btnActionButton.titleLabel.center.y)];
                 }];

这就是我设法让它工作的原因......实际上,我想让第一个按钮消失,第二个按钮以滑动方式出现。

答案 2 :(得分:0)

尝试为标签设置动画。我的意思是这样的:

[UIView animateWithDuration:0.2
             delay: 0.0
             options: UIViewAnimationOptionCurveEaseIn
             animations:^{
                 [btnActionButton setFrame:CGRectMake(160, 10, 0, 55)];
                 [btnActionButton.titleLabel setFrame:CGRectMake(  0,  0, 0, 55)];
             }
             completion:^(BOOL finished){
             }];

希望这有帮助。

干杯!