Я создаю приложение для сборника рассказов, которое представляет собой серию коротких анимаций. Каждый «поворот страницы» - это просто короткая анимация, когда страница уменьшается. Для page1 анимация работает, как и ожидалось, однако для page2 , если я вызываю действие page2, пока первая анимация еще выполняется, кажется, что она прыгает прямо туда, где page1 в этот момент, игнорируя собственную длительность, задержку и т. д.
В идеале, я бы хотел, чтобы анимация page2 воспроизводилась как собственное уменьшение масштаба, так же, независимо от того, когда он вызывается, что я могу изменить в этом коде.
-(IBAction) page1
{
pageImageNext.bounds = CGRectMake(-240, -370, 1200, 800);
[UIImageView animateWithDuration:7.5 delay:2.0 options: UIViewAnimationOptionOverrideInheritedDuration |
UIViewAnimationOptionAllowUserInteraction animations:^{
CGAffineTransform zoom = CGAffineTransformScale(CGAffineTransformIdentity, .4, .4);
self.pageImageNext.center = CGPointMake(240,160);
self.pageImageNext.transform = zoom;
} completion:^(BOOL finished) {}];
}
-(IBAction) page2
{
pageImageNext.image = [UIImage imageNamed:@"page2.jpg"];
pageImageNext.bounds = CGRectMake(-240, -370, 1200, 800);
[UIImageView animateWithDuration:7.5 delay:6.0 options: UIViewAnimationOptionOverrideInheritedDuration |
UIViewAnimationOptionAllowUserInteraction |
UIViewAnimationOptionBeginFromCurrentState animations: ^{
CGAffineTransform zoom2 = CGAffineTransformScale(CGAffineTransformIdentity, .4, .4);
self.pageImageNext.center = CGPointMake(240,160);
self.pageImageNext.transform = zoom2;
} completion:^(BOOL finished) {}];
}
Кроме того, строка pageImageNext.bounds = CGRectMake(-240, -370, 1200, 800);
, по-видимому, не действует в page2 , поскольку она не изменяет размер UImageView
, а скорее "наследует" ее текущий размер от предыдущего преобразования.
Спасибо!