RMPZoomTransitionAnimator
提供自定义缩放动画过渡。
不仅仅是UICollectionView
,还可以使用任何其他UIViewController
过渡。
这种过渡动画类似于“Pinterest”动画,但这是一个非常简单小巧的库。
RMPZoomTransitionAnimator可以通过CocoaPods获得。
要安装它,请简单地将以下行添加到您的Podfile中
pod "RMPZoomTransitionAnimator"
要运行示例项目,请克隆仓库,然后首先从Example目录运行pod install
。
设置如下
请参阅示例项目以获取详细信息。
RMPZoomTransitionAnimator.h
RMPZoomTransitionAnimating
RMPZoomTransitionAnimating
协议,包括源视图控制器和目标视图控制器- (UIImageView *)transitionSourceImageView
- (UIColor *)transitionSourceBackgroundColor
- (CGRect)transitionDestinationImageViewFrame
- (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
协议- (UIImageView *)transitionSourceImageView
- (UIColor *)transitionSourceBackgroundColor
- (CGRect)transitionDestinationImageViewFrame
prepareForSegue:sender:
中设置transitioningDelegateUIViewControllerTransitioningDelegate
方法中返回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;
}
如果您有功能请求或错误报告,请通过发送拉取请求或创建新问题来提交帮助。
招聘市场营销合作伙伴有限公司 [email protected]
RMPZoomTransitionAnimator在MIT许可下可用。