3

我正在尝试制作一个自定义序列,其中 src 跌落以显示 dst。这是我目前拥有的。我怎样才能让 dst 在 src 后面?

-(void)perform {
    UIViewController *src = [self sourceViewController];
    UIViewController *dst = [self destinationViewController];

    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationCurveEaseIn
                     animations:^{
                         [src.parentViewController.view setTransform:CGAffineTransformMakeTranslation(0, src.view.bounds.size.height)];
                     }
                     completion:nil];

    [src presentViewController:dst animated:NO completion:nil];

}
4

1 回答 1

2

与其将目标视图控制器安排在源控制器后面,不如试试这个:将源视图控制器渲染到图像视图,将该图像添加到源控制器,然后为图像落下设置动画。

这有很多好处:首先,无论您最终做什么,出于性能原因,您都可能需要将源视图控制器渲染为图像。其次,它避免了必须弄乱视图控制器层次结构。

如果这不是完全清楚,这里是一步一步:

  1. 将您的源视图控制器渲染到UIImageView
  2. 将其添加UIImageView到您的目标视图控制器(以便它完全覆盖目标视图)
  3. 移除您的源视图控制器并添加目标控制器 - 这应该是无缝/不可见的,因为您的目标控制器正在显示您之前准备的渲染图像。
  4. 动画UIImageView下落以显示其下方的视图内容
于 2013-07-05T11:50:06.937 回答