我一直在试图找到一种合适的方式,平滑地对UILabel进行帧大小变化动画,而不会出现奇怪的起始跳动重新绘制。默认情况下会发生什么是当我做这样的事情时:
// Assume myLabel frame starts as (0, 0, 100, 200)
[UIView beginAnimations:@"myAnim" context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:1.0];
myLabel.frame = CGRectMake(0.0, 0.0, 50, 100);
[UIView commitAnimations];
我得到了一个带标签的平滑动画,但是它实现的方式是将重绘的图像层用作标签目标大小,并将内容拉伸以适应当前大小,然后动画到目标矩形。这最终导致了文本显示中非常奇怪的跳跃。以下是两张图片,展示了动画前的外观以及动画开始后的样子:动画前
动画后
我尝试只使用图层来实现此动画,但仍然遇到相同的问题。
所以问题是,我该如何解决这个问题?
感谢任何帮助,
Scott