我一直在试图找出一个体面的方式来平滑地动画UILabel上的帧大小变化,没有一个奇怪的开始跳转重绘。什么默认情况是,当我做这样的事情: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];
我得到一个流畅的动画与标签,但是它确实是,它需要重绘图像层为目标大小的方式的标签,并将内容传递给适合当前的动画,然后将其转换为目标矩形。这最终在文本显示中出现了非常奇怪的跳跃。这里有两个图像,显示预动画一下,然后就在动画开始后:
预动画
后期动画
我曾尝试只使用图层动画,但我仍然遇到同样的问题。
所以问题是,我该如何避免这种情况?
感谢您的帮助,
斯科特
这是一个老问题,但我要斗争与完全相同的问题。不知何故,这是不合逻辑的。据我了解的动画方法,你应该能够动画UIView类的大部分属性。但是为什么UILabel的框架属性在动画时比正常的UIView子类有不同的表现。它看起来像UILabel类是忽略大小的动画,只动画了位置变化。这创造了一个看起来很奇怪的动画。如果有人能帮助我,我将不胜感激。 – Chris