如何在动画过程中,在每一帧的时候通知正在动画中的这个UIView进行重绘而不使用cache

我在制作一个UIView的宽度变宽的动画,这个UIView里面有一个需要居中显示的Icon,其位置需要在动画过程中根据父View的宽度计算得来,然而ios动画是在播放前进行一次绘制作为cache,接下来都使用这个cache进行动画,导致icon的位置无法实时更新.

有没有办法解决这个问题呢

setNeedDisplay 刷新 绘制行不通么?

关键在于需要在动画过程中逐帧更新位置,也就是逐帧调用DrawRect.用setNeedDisplay只能在第一帧的时候进行重绘.

不过我修改了实现以后问题解决了.
是用一个subview来处理居中,不重写DrawRect.
最初的方案是用一个居中的subview来放置icon,好像是因为参数的问题当时不可行,我转而在DrawRect中手动Draw.

后面改回去的时候,参数改对了效果就ok了.

因为只有你回我.就选你做最佳咯~

那只能呵呵了~