Здесь есть 2 пункта, которые нужно обновить. Уровень представления и модель. CABasicAnimation изменяет только уровень представления и никогда не обновляет модель. Поэтому, когда уровень представления анимации заканчивается, он исчезает, и вы видите представление со значениями из модели. Вам просто нужно обновить модель новым значением после завершения анимации.
[layer setValue:toValue forKeyPath:keyPath];
взгляните на утилиту, которую я написал, чтобы помочь с этим, HMBasicAnimation
http://hellomihai.wordpress.com/2014/09/02/hmbasicanimation-utility/
использование:
[HMBasicAnimation doAnimation:myView.layer // layer youre updating
toValue:myView.frame.size.width/2 // your value
duration:1.5 // duration
delaySeconds:1 // animation delay (good for chaining animations
keyPath:HMBasicAnimation_TRANSLATION_X]; // what you're changing, several available