iOS自定义转场-带交互

上一篇我们讲了iOS自定义转场-无交互.

这一篇我们来讲讲iOS自定义转场动画-带交互的情况.

0. 交互情况下VC、Nav、Tab都需要遵循的代理

需要遵循UIViewControllerInteractiveTransitioning代理.并且实现- (void)startInteractiveTransition:(id <UIViewControllerContextTransitioning>)transitionContext;方法.

UIViewController情况下

最重要的是需要实现UIViewController的UIViewControllerTransitioningDelegate的两个代理方法来指定谁来控制交互.

- (id<UIViewControllerInteractiveTransitioning>)interactionControllerForPresentation:(id<UIViewControllerAnimatedTransitioning>)animator {
    return nil;
}

- (id<UIViewControllerInteractiveTransitioning>)interactionControllerForDismissal:(id<UIViewControllerAnimatedTransitioning>)animator {
    return nil;
}

UINavigationController情况下

- (nullable id <UIViewControllerInteractiveTransitioning>)navigationController:(UINavigationController *)navigationController
                          interactionControllerForAnimationController:(id <UIViewControllerAnimatedTransitioning>) animationController NS_AVAILABLE_IOS(7_0);

UITabbarController情况下

- (nullable id <UIViewControllerInteractiveTransitioning>)tabBarController:(UITabBarController *)tabBarController
                      interactionControllerForAnimationController: (id <UIViewControllerAnimatedTransitioning>)animationController NS_AVAILABLE_IOS(7_0);

我们可以选择使用当前类来管理然后在- (void)startInteractiveTransition:(id <UIViewControllerContextTransitioning>)transitionContext方法写动画方法.也可以使用UIPercentDrivenInteractiveTransition对象去管理动画.

资源.如果以后封装得更加易用一些我会考虑放到GitHub开源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值