动画UIView setFrame以强制每个可动画帧上的drawRect

时间:2013-12-28 12:07:26

标签: iphone objective-c animation uiview calayer

我有一个顶部有UILabel的UIView。我将UILabel的内容模式设置为'UIContentModeLeft'。正如预期的那样,当我将UIView的帧设置为小于原始大小的动画时,标签会“跳转”到最终帧,而不会很好地制作动画。

据我所见,UIContentModeRedraw不强制在每个“动画帧”上调用'drawRect'。我也尝试过使用自定义CALayer,但似乎无法使帧顺利调整大小。

有没有办法做到这一点?现在的动画是非常小故障。 UIContentModes没用,我不能使用framestretch的框架,也不能拉伸标签的任何边缘。我真正需要的是每次父视图调整大小时“刷新”标签。

1 个答案:

答案 0 :(得分:1)

不幸的是,没有办法做到这一点,所以我已经学会了。唯一的另一种方法是实际运行一个定时器,每次调用它时都会更新帧。这导致非常不稳定的动画,因为复杂视图的大小调整是耗时的。我最终通过一些预先渲染的屏幕元素和场景背后的大量“魔法效果”来实现同样的目标。