创建缩放到圆形视图的自定义过渡

时间:2014-05-09 18:39:45

标签: ios objective-c uiview uiviewanimation uiviewanimationtransition

我正在尝试创建自定义iOS 7 Transition。目前我有一个像这样的简单圆圈视图: enter image description here

我在自定义视图上有一个手势识别器。单击时,将调用自定义转换委托

`-[CCZTTransitionDelegate animationControllerForPresentedController:presentingController:sourceController:]`  

反过来调用转换动画类的两个方法:

-[CCZTAnimatedTransitioning transitionDuration:]
-[CCZTAnimatedTransitioning animateTransition:]

目前我刚刚让第二个控制器放大,这一切都正常......

期望效果
点击圆圈时我想做的是 1.让圆圈的大小增加,直到屏幕完成覆盖其颜色 2.淡出第二个控制器

完成第1步的最佳方法是什么?这可以在过渡代表/过渡动画方法中完成吗?

在这个方法- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext中,我看起来可以访问视图控制器而不是子视图。动画是否应该以某种方式完成,如果是这样的话?

注意:最终会有一组圈子不仅仅是一个圈子。

编辑:
同样重要的是要注意我实际上是想从圆心放大。因此,如果圆圈位于其他位置(即有更多圆圈),则圆圈应从其自身的中心点放大/缩小。

1 个答案:

答案 0 :(得分:0)

尝试在圆形视图上使用CGAffineTransformScale动画并展开它以填充整个视图。完成扩展后(通过UIView动画完成块或使用UIViewKeyFrameAnimation),在填充视图后面显示下一个视图控制器。一旦呈现,淡出视图以通过在动画块中按下α视图来显示新呈现的视图控制器。