Ответ 1
Два варианта:
1) Используйте обратный вызов делегата -(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
2) Попытайтесь поместить его в блок анимации (с ... animated:NO];
), который имеет часть завершения.
Мне нужно что-то похожее для Flipboard с небольшим переворачиванием анимации при запуске приложения. Flipboard при запуске имеет небольшое перемещение вверх и вниз, чтобы показать пользователям, незнакомым с интерфейсом, что он может быть удален.
У меня есть UIScrollView. Я хочу немного оживить, чтобы показать пользователю, что он прокручивается. Поэтому я хочу прокрутить вправо немного и обратно. UIScrollView имеет сообщение setContentOffset:animated:
без предложения завершения. Я нахожу, что вызов его дважды приводит к отсутствию анимации. Что делать, если я хочу анимацию после анимации подряд?
EDIT:
Спасибо Леви за ответ.
И для записи есть UIViewAnimationOptionAutoreverse
и UIViewAnimationOptionRepeat
, которые я могу использовать. Так вот что я закончил с этими работами.
CGPoint offset = self.scrollView.contentOffset;
CGPoint newOffset = CGPointMake(offset.x+100, offset.y);
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionAutoreverse |UIViewAnimationOptionRepeat animations:^{
[UIView setAnimationRepeatCount: 2];
[self.scrollView setContentOffset:newOffset animated: NO];
} completion:^(BOOL finished) {
[self.scrollView setContentOffset:offset animated:NO];
}];
Два варианта:
1) Используйте обратный вызов делегата -(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
2) Попытайтесь поместить его в блок анимации (с ... animated:NO];
), который имеет часть завершения.
Для scrollView, tableView или collectionView, если вы выполните что-то вроде этого:
[self.collectionView setContentOffset:CGPointMake(self.collectionView.contentOffset.x+260.0,
self.collectionView.contentOffset.y)
animated:YES];
то вы вернетесь назад:
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
когда заканчивается свиток.
Вы не получите этот обратный вызов, если пользователь перемещает представление.