我正在尝试移动并调整标签大小,但会发生的是标签立即调整大小然后移动到位。我首先尝试了注释掉的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
];
答案 0 :(得分:0)
我怀疑自动文字大小调整功能不适用于Core Animation。
我建议做的是将标签设置为最终尺寸(使用它的边界),然后对其应用变换,将其缩小回原始尺寸。这些东西的最终效果是它应该保持相同的表观尺寸。
最后,使用animateWithDuration:animations:将视图的变换设置回身份变换,使其增长到新的大小。
我不知道这将导致什么样的绘图工件 - 你必须尝试它。