Zeige Pushviewcontroller Animation aussehen wie PresentModalViewController
-
27-09-2019 - |
Frage
Ist es möglich, pushViewController
Animation aussehen wie presentModalViewController
zu zeigen, aber das hat Hintergrund Funktionalität von pushViewController
?
Lösung
Versuchen Sie diese:
UIViewController *yourViewController = [[UIViewController alloc]init];
[UIView beginAnimations: @"Showinfo"context: nil];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController: yourViewController animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
Andere Tipps
Wenn Sie möchten, auf eine Fade-Animation, dieser Ansatz funktioniert.
CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionFade;
transition.subtype = kCATransitionFromTop;
[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[self.navigationController pushViewController:gridController animated:NO];
Für die Anzeige PushViewConttroler Animation als Geschenk Code unten arbeitet,
Push
ViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
CATransition* transition = [CATransition animation];
transition.duration = 0.4f;
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromTop;
[self.navigationController.view.layer addAnimation:transition
forKey:kCATransition];
[self.navigationController pushViewController:VC animated:NO];
Und für POP
CATransition* transition = [CATransition animation];
transition.duration = 0.4f;
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromBottom;
[self.navigationController.view.layer addAnimation:transition
forKey:kCATransition];
[self.navigationController popViewControllerAnimated:NO];
Es gibt 1 Problem aber, dass seine Anzeige Licht schwarzer Hintergrund, wenn sein Gehen, oben / unten,
Die Arbeit an, dass, sobald sie getan nach neuem Code hier.
Alles in Xamarin Versuch (C #) Äquivalent-Code Von Antwort von @hardik Thakkar oben, hat die Ausgabe von Schwarz während der Animation Backgound, alles gut ausruhen.
Für POP
CATransition transition = CATransition.CreateAnimation();
transition.Duration = 0.4;
transition.Type = CAAnimation.TransitionReveal;
transition.Subtype = CAAnimation.TransitionFromTop;
this.NavigationController.View.Layer.AddAnimation(transition, nameof(CATransition));
Für Push-
CATransition transition = CATransition.CreateAnimation();
transition.Duration = 0.4;
transition.Type = CAAnimation.TransitionReveal;
transition.Subtype = CAAnimation.TransitionFromBottom;
this.NavigationController.View.Layer.AddAnimation(transition, nameof(CATransition));
Sie sollten etwas zu tun, wie betrachten:
ViewController *myVC = [[ViewController alloc] initWithFrame:OFF_SCREEN];
[navigationController pushViewController:myVC animated:NO];
Dabei gilt OFF_SCREEN einige CGRect unter dem Bildschirm ist, wie (0, 481, 320, 480). Dann einen Animationsblock der Viewcontroller Ansicht des frame.origin anpassen sein (0, 0). Sie würden wahrscheinlich wollen den belebten Block in viewDidLoad oder viewDidAppear tun.