У меня есть несколько блоков анимации, каждый из которых следует этому базовому формату с разными задержками, поэтому они запускаются один за другим:
[UIView animateWithDuration:.85 delay:3 options:opts animations:[animations objectAtIndex:ww] completion:[completions objectAtIndex:ww]];
Для простого доступа доступны варианты UIViewAnimationOptionAutoreverse
в переменной.
Я хочу, чтобы между анимацией и завершением была задержка, чтобы изображения немного задержались в своей новой позиции, прежде чем вернуться к исходной. Я подумал об использовании нескольких более простых animateWithDuration:animations:
блоков, но я не видел никакого способа сделать это с задержкой в документации, если я что-то упустил.
@Paul.s вот код, который я использовал с тем, что вы мне дали:
void (^completion)(void) = ^{
[UIView animateWithDuration:.5
delay:5
options:UIViewAnimationCurveLinear
animations:[completions objectAtIndex:ww]
completion:^(BOOL finished) {}];
};
// Call your existing animation with the new completion block
[UIView animateWithDuration:.5
delay:1
options:UIViewAnimationCurveLinear
animations:[animations objectAtIndex:ww]
completion:^(BOOL finished) {
completion();
}];
для справки, анимация очень простая, просто перемещая изображение из одной точки в другую, а затем обратно. точка, в которой происходит сбой, - это строка [UIView animateWithDuration:.5
, в которой определен блок завершения, и происходит сбой после запуска первой части анимации.