Я хочу создать пользовательскую анимацию для анимации pushViewController
с использованием последовательности изображений.Пользовательская анимация для pushViewController
Я сделал это до такой степени, что currentViewController
покрыт изображениями, которые я хочу, но я не знаю, можно ли показать nextViewController
при попытке изменить порядок анимационных изображений.
до сих пор у меня есть следующие
- (IBAction)nextAction:(id)sender {
UIImage* img1 = [UIImage imageNamed:@"image-1.png"];
UIImage* img2 = [UIImage imageNamed:@"image-2.png"];
UIImage* img3 = [UIImage imageNamed:@"image-3.png"];
UIImage* img4 = [UIImage imageNamed:@"image-4.png"];
UIImage* img5 = [UIImage imageNamed:@"image-5.png"];
NSArray *animationImages = [NSArray arrayWithObjects:img1,img2,img3,img4,img5,nil];
CALayer *myLayer = [CALayer layer];
myLayer.bounds = CGRectMake(0.0, 0.0, 320.0, 480.0);
myLayer.position = self.view.center; //CGPointMake(0.0 ,0.0);
CAKeyframeAnimation *animationSequence = [CAKeyframeAnimation animationWithKeyPath: @"contents"];
animationSequence.calculationMode = kCAAnimationLinear;
animationSequence.autoreverses = NO;
animationSequence.duration = 0.4;
animationSequence.delegate = self;
animationSequence.repeatCount = 1; //HUGE_VALF;
NSMutableArray *animationSequenceArray = [[NSMutableArray alloc] init];
for (UIImage *image in animationImages)
{
[animationSequenceArray addObject:(id)image.CGImage];
}
animationSequence.values = animationSequenceArray;
[myLayer addAnimation:animationSequence forKey:@"contents"];
[self.view.layer addSublayer:myLayer];
}
- (void)animationDidStop:(CAAnimation*)animation finished:(BOOL)finished {
NextViewController *nextViewController;
nextViewController = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
nextViewController.title = @"next";
[self.navigationController pushViewController:nextViewController animated:NO];
[nextViewController release];
}
IBAction
nextAction
выполняется, когда пользователь нажимает на кнопку, и изображения получить анимированные поверх текущего вида.
Что я хочу достичь, после того, как изображения находятся сверху, нажмите nextViewController
под изображениями и отмените анимацию, чтобы выявить nextViewController
.
Надеюсь, это имеет смысл. Это похоже на фотографию, поместив на карту несколько карт, а затем удалив карты, открывая другую фотографию.
Тео
Я пытаюсь использовать [[[UIApplication sharedApplication] keyWindow] .layer addSublayer: myLayer]; но есть ли способ, когда анимация на полпути, чтобы нажать nextViewController; – teo
Я предполагал, что первая половина всей анимации презентации на самом деле была полной анимацией, как указано выше. – Till