Custom MKAnnotationView用动画注意的地方

由于想在MKAnnotationView上放一个加载的动画效果(rotate的一个动画),结果发现内存飞涨。原因是animation造成的,由于MKAnnotationView,系统有重用功能,所以分配的mkannotaitonview不一定会被马上释放掉,所以当你remove annotation的时候,对应的MKannotationView并没有被释放,它上面的动画也一直在运行,所以当要remove annotation的时候,得把相对应的动画停止。

其实理论上动画效果并不会引起内存飞涨的,由于我开启了NSZombieEnabled, 在以前的一个文章中也记录了这个问题:http://blog.csdn.net/favormm/article/details/7417184

我猜测可能是动画效果循环得太快,而开启NSZombieEnabled后,系统来不及释放动画效果中用到的内存(即使是非常简单的动画也是如此)。


所以我写了两个方法,stopAnimation 与 startAnimation,在加载MKAnnotationView的时候startAnimation,remove annotation的时候stopAnimation, 这样一来,在开启NSZombieEnabled的情况下也可以正常运行。


MKAnnotationView有重用功能, 由此我联想到UITableViewCell这种,也要同样注意。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值