我在制作一个UIView的宽度变宽的动画,这个UIView里面有一个需要居中显示的Icon,其位置需要在动画过程中根据父View的宽度计算得来,然而ios动画是在播放前进行一次绘制作为cache,接下来都使用这个cache进行动画,导致icon的位置无法实时更新.
有没有办法解决这个问题呢
我在制作一个UIView的宽度变宽的动画,这个UIView里面有一个需要居中显示的Icon,其位置需要在动画过程中根据父View的宽度计算得来,然而ios动画是在播放前进行一次绘制作为cache,接下来都使用这个cache进行动画,导致icon的位置无法实时更新.
有没有办法解决这个问题呢
setNeedDisplay 刷新 绘制行不通么?
关键在于需要在动画过程中逐帧更新位置,也就是逐帧调用DrawRect.用setNeedDisplay只能在第一帧的时候进行重绘.
不过我修改了实现以后问题解决了.
是用一个subview来处理居中,不重写DrawRect.
最初的方案是用一个居中的subview来放置icon,好像是因为参数的问题当时不可行,我转而在DrawRect中手动Draw.
后面改回去的时候,参数改对了效果就ok了.
因为只有你回我.就选你做最佳咯~
那只能呵呵了~