模拟Push和Pop动作

//利用CATransition来作模拟

//模拟Push
- (void)pushView:(UIView *)pushView inView:(UIView *)inView
{
    CATransition *animation = [CATransition animation];
    animation.duration = 0.2f;
    animation.timingFunction = [CAMediaTimingFunction
                                functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    animation.fillMode = kCAFillModeForwards;
    animation.type = kCATransitionPush;
    animation.subtype = kCATransitionFromRight;
    [inView.layer addAnimation:animation forKey:nil];
    [inView addSubview:pushView];
}

//模拟pop
- (void)navPopView:(UIView *)popView
{
    CATransition *animation = [CATransition animation];
    animation.duration = 0.2f;
    animation.timingFunction = [CAMediaTimingFunction
                                functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    animation.fillMode = kCAFillModeForwards;
    animation.type = kCATransitionPush;
    animation.subtype = kCATransitionFromLeft;
    [self.view.layer addAnimation:animation forKey:nil];
    [popView removeFromSuperview];
}
原文地址:https://www.cnblogs.com/mohe/p/3810316.html