我一直在尝试找出一种体面的方法来平滑地为 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];
我得到了一个带有标签的平滑动画,但是它的方式是将重绘的图像层用于标签的目标大小并拉伸内容以适应当前然后动画到目标矩形。这最终在文本显示中出现了一个非常奇怪的跳跃。这是两张显示动画前外观的图像,然后是动画开始后的样子:
预动画
动画后
我试图只使用图层来制作动画,但我仍然遇到同样的问题。
所以问题是,我怎样才能避免这种情况?
感谢您的帮助,
斯科特