NavigationViewController
のデフォルトのMailApp
に非常に似ているiPhone
を模倣しようとしています。
メールの要約をクリックすると、スライドインメールの詳細が表示され、[〜#〜] back [〜#〜]ボタンをクリックすると、メールの要約ビューが表示されます。 スライドインに戻ります。
これは、概要から詳細への移行をアニメーション化するために必要なものです(removeFromSuperView
)
CGRect temp = self.view.frame;
temp.Origin.x = 300;
[UIView animateWithDuration:0.5
delay:0.0
options: UIViewAnimationCurveEaseOut
animations:^{
self.view.frame = temp;
}completion:^(BOOL finished){
[self.view removeFromSuperview];
}];
これは、詳細から要約への遷移をアニメーション化するために必要なものです(addSubview
)
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.type = kCATransitionFromRight;
transition.subtype = kCATransitionFade;
[parentView.layer addAnimation:transition forKey:nil];
[parentView addSubview:myVC.view];
さて、コードの最初の部分はうまく機能しています! 2番目の部分として、フェードインアニメーションを実現することができます。スライドの切り替えを行うにはどうすればよいですか?
kCATransitionPush
にCATransition
タイプを選択するだけです
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[transition setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[parentView.layer addAnimation:transition forKey:nil];
[parentView addSubview:myVC.view];
Swiftの更新:
let transition = CATransition()
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromLeft
parentView.layer.add(transition, forKey: nil)
parentView.addSubview(myVC.view)
またはチェックアウトすることができます:HorizontalSlide Segue(モバイルでリンクを取得できません).
サイドノートでは、これがナビゲーションコントローラーにある場合、プッシュまたはポップにはデフォルトでスライドアニメーションが必要です...