2

我正在尝试为自定义过渡(iOS7,UIViewControllerAnimatedTransitioning)实现动画,当来自 UITableViewCell 的缩略图开始缩小到全屏并且过渡以带有背景图像的新(模态)UIViewController 全屏结束时,即源 UITableViewCell 的缩略图中的图像质量更高。

使用自定义转换的“准备”代码很好,现在我正在努力处理委托方法中的实际动画实现:

- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext
{
    UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
    UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

    CGRect sourceRect = [transitionContext initialFrameForViewController:fromVC];
    CGRect finalRect = [transitionContext finalFrameForViewController:toVC];

    UIView *container = [transitionContext containerView];

    if (self.mode == TRANSITION_MODE_INITIAL) {
       //TODO: back to the table listing

    } else if (self.mode == TRANSITION_MODE_MODAL) {
       //TODO: take a thumbnail and zoom out, then replace with toVC's view?
    }
}

我将选定的 UITableViewCell 传递给这个自定义转换类,因此我可以访问单元格的所有子视图来实现动画。

我无法正确理解的要点:

  1. 仅放大 toVC 并将其放置在缩略图位置(帧)上然后为其缩小设置动画而不是缩放实际缩略图是否正确?
  2. 容器在这里的作用是什么?如何正确使用?
4

0 回答 0