0

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

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

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

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

提前致谢。奥贝德

4

3 回答 3

3

这是由于宽度0。

使用下面的代码。

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

代替 50 给出动画后按钮的宽度。

于 2012-07-11T09:13:48.487 回答
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)];
                 }];

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

于 2012-07-11T09:36:20.220 回答
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){
             }];

希望这可以帮助。

干杯!

于 2012-07-11T08:57:37.083 回答