RMPZoomTransitionAnimator 1.0.3

RMPZoomTransitionAnimator 1.0.3

测试已测试
lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年5月

recruit-mp 维护。




  • Recruit Marketing Partners Co.,Ltd.

概览

RMPZoomTransitionAnimator提供自定义缩放动画过渡。

不仅仅是UICollectionView,还可以使用任何其他UIViewController过渡。

这种过渡动画类似于“Pinterest”动画,但这是一个非常简单小巧的库。

Screen shot Screen shot

安装

RMPZoomTransitionAnimator可以通过CocoaPods获得。
要安装它,请简单地将以下行添加到您的Podfile中

pod "RMPZoomTransitionAnimator"

用法

要运行示例项目,请克隆仓库,然后首先从Example目录运行pod install

设置如下

用于UINavigationController推送过渡

请参阅示例项目以获取详细信息。

  • 导入RMPZoomTransitionAnimator.h
  • 采用RMPZoomTransitionAnimating
  • 在下面实现RMPZoomTransitionAnimating协议,包括源视图控制器和目标视图控制器
    1. - (UIImageView *)transitionSourceImageView
    2. - (UIColor *)transitionSourceBackgroundColor
    3. - (CGRect)transitionDestinationImageViewFrame
  • 在UINavigationController代理方法中返回RMPZoomTransitionAnimator实例
- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
                                   animationControllerForOperation:(UINavigationControllerOperation)operation
                                                fromViewController:(UIViewController *)fromVC
                                                  toViewController:(UIViewController *)toVC
{
    // minimum implementation for example
    RMPZoomTransitionAnimator *animator = [[RMPZoomTransitionAnimator alloc] init];
    animator.goingForward = (operation == UINavigationControllerOperationPush);
    animator.sourceTransition = (id<RMPZoomTransitionAnimating>)fromVC;
    animator.destinationTransition = (id<RMPZoomTransitionAnimating>)toVC;
    return animator;
}

用于模态过渡

请参阅示例项目以获取详细信息。

  • 导入RMPZoomTransitionAnimator.h
  • 采用RMPZoomTransitionAnimating
  • 在以下两个视图控制器(包括源视图控制器和目标视图控制器)中实现RMPZoomTransitionAnimating协议
    1. - (UIImageView *)transitionSourceImageView
    2. - (UIColor *)transitionSourceBackgroundColor
    3. - (CGRect)transitionDestinationImageViewFrame
  • prepareForSegue:sender:中设置transitioningDelegate
  • UIViewControllerTransitioningDelegate方法中返回RMPZoomTransitionAnimator实例
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented
                                                                  presentingController:(UIViewController *)presenting
                                                                      sourceController:(UIViewController *)source
{
    // minimum implementation for example
    RMPZoomTransitionAnimator *animator = [[RMPZoomTransitionAnimator alloc] init];
    animator.goingForward = YES;
    animator.sourceTransition = (id<RMPZoomTransitionAnimating>)source;
    animator.destinationTransition = (id<RMPZoomTransitionAnimating>)presented;
    return animator;
}

- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
    // minimum implementation for example
    RMPZoomTransitionAnimator *animator = [[RMPZoomTransitionAnimator alloc] init];
    animator.goingForward = NO;
    animator.sourceTransition = (id<RMPZoomTransitionAnimating>)dismissed;
    animator.destinationTransition = (id<RMPZoomTransitionAnimating>)self;
    return animator;
}

需求

  • iOS 7.0或更高版本

修改日志

1.0.1

  • 添加动画完成处理程序

1.0.0

  • 首次发布。

贡献

如果您有功能请求或错误报告,请通过发送拉取请求或创建新问题来提交帮助。

作者

招聘市场营销合作伙伴有限公司 [email protected]

许可

RMPZoomTransitionAnimator在MIT许可下可用。