1

我在 MyUILabel 上执行 2 个动画。MyUILable 是我从 UILabel 派生的自定义类,并实现了仅绘制边框的 drawRect 方法。

这是我的动画代码:

- (void)animateLableIn
{
    UIViewAnimationOptions options = UIViewAnimationOptionBeginFromCurrentState|UIViewAnimationOptionAllowUserInteraction;
    [UIView animateWithDuration:0.1f delay:0.0 options:options animations:^{

        label.transform = CGAffineTransformMakeScale(1.1f, 1.1f);

    } completion:^(BOOL finished) {
        if (finished) {
            [self animateLableOut];
        }
    }];
}

- (void)animateLableOut
{
    UIViewAnimationOptions options = UIViewAnimationOptionBeginFromCurrentState|UIViewAnimationOptionAllowUserInteraction;
    [UIView animateWithDuration:0.1f delay:0.0 options:options animations:^{

        label.transform = CGAffineTransformMakeScale(1.0f, 1.0f);

    } completion:^(BOOL finished) {
        if (finished) {
        }
    }];
}

在第一个动画开始时,我的标签顶部边缘出现一条灰线,并在所有动画完成后持续存在。我想提一下,这条线不是我的 drawRect 实现的一部分,即使我的 drawRect 是空的,它也会出现。标签也比最初的要小一些。

附加的图像不成比例。

动画前:

动画之前

动画之后:

动画之后

任何猜测为什么会发生这种情况?

4

1 回答 1

0

最后我发现了问题。我在动画运行时更改了该标签的框架。在动画完成后对标签的框架进行更改可以解决问题。

于 2013-05-23T13:59:03.580 回答