iPad - 如何移动和调整标签大小

时间:2011-04-07 03:47:02

标签: ipad uiview uiviewanimation

我正在尝试移动并调整标签大小,但会发生的是标签立即调整大小然后移动到位。我首先尝试了注释掉的lbl.frame行。接下来我发现了这个问题:

How to animate while resizing UIView

并添加除contentMode之外的所有其他代码。这样做了我想要的,但随着标签缩小,Label的字体没有向下调整。 (我选择调整以适应xib)。最后添加contentMode行给了我与原始帧行相同的结果 - 首先缩小它们为移动设置动画。

    lbl.contentMode = UIViewContentModeRedraw;
    [UIView animateWithDuration:1.0 delay:0.0
                        options:(UIViewAnimationOptionAllowUserInteraction)
                     animations:^{
                         //lbl.frame = CGRectMake(x, mStartingLine.frame.origin.y+mStartingLine.frame.size.height, 100, 100);
                         CGRect theBounds = lbl.bounds;
                         CGPoint theCenter = lbl.center;
                         theBounds.size.height = 100;
                         theBounds.size.width = 100;
                         theCenter.y = mStartingLine.frame.origin.y+mStartingLine.frame.size.height+50;
                         theCenter.x = x;
                         lbl.bounds = theBounds;
                         lbl.center = theCenter;
                     }
                     completion:nil
     ];

1 个答案:

答案 0 :(得分:0)

我怀疑自动文字大小调整功能不适用于Core Animation。

我建议做的是将标签设置为最终尺寸(使用它的边界),然后对其应用变换,将其缩小回原始尺寸。这些东西的最终效果是它应该保持相同的表观尺寸。

最后,使用animateWithDuration:animations:将视图的变换设置回身份变换,使其增长到新的大小。

我不知道这将导致什么样的绘图工件 - 你必须尝试它。