От всей моей головы проще всего было бы поместить код анимации в метод и вызывать его рекурсивно так часто, как вы хотите.Код не проверен, но он должен работать или, по крайней мере, дать вам представление.
// Repeat 10 times, move 20 right and the left and right etc.
FancyAnim(activeCell, activeCell.Bounds.Location, 10, 20);
private void FancyAnim(UITableViewCell activeCell, PointF originalLocation, int repeat, float offset)
{
var bounds = activeCell.Bounds;
var loc = originalLocation;
UIView.Animate(0.2,
delegate
{
// Called when animation starts.
loc.X = originalLocation.X + offset;
activeCell.Bounds = new RectangleF (loc, bounds.Size);
},
delegate
{
// Called when animation ends.
repeat--;
// Call the animation method again but invert the movement.
// If you don't do this too often, you should not run out of memory because of a stack overflow.
if(repeat >= 0)
{
FancyAnim(activeCell, originalLocation, repeat, -offset);
}
});
Однако вы также можете использовать анимацию пути.Вы должны определить путь «20 единиц справа, назад к центру, 20 единиц слева, назад к центру» и повторять эту анимацию так часто, как вам нравится.Это требует от вас иметь дело с CAKeyFrameAnimation и будет немного больше кода.Этот сайт поможет вам начать: http://www.bdunagan.com/2009/04/26/core-animation-on-the-iphone/