Вам не нужно делать это вручную. Вы можете сделать это почти автоматически с помощью методов анимации UIView.
Вы можете установить целевой размер на 110%, а анимацию повернуть вспять и «повторить». В этом случае вы устанавливаете количество повторений на 0,58. То есть, сделайте половину полного цикла возврата и возврата, затем 1/6 от этого больше.
Это еще не все. Если вы просто сделаете это, после завершения анимации она вернется к 110%. Поэтому вам нужно установить его обратно на 100%, чтобы удерживать его в целевом положении.
Как это:
// make it 50% size initially; maybe you already did that
circleView.transform = CGAffineTransformMakeScale(0.5,0.5);
[UIView animateWithDuration:1.0 / 0.58 // actual duration 1.0s
animations:^{
[UIView setAnimationRepeatCount:0.58];
[UIView setAnimationRepeatAutoreverses:YES];
circleView.transform = CGAffineTransformMakeScale(1.1,1.1);
}
completion:^(BOOL finished){
circleView.transform = CGAffineTransformIdentity;
}
]