2

我的屏幕上已经有一个 UIView,我希望根据我检测到的滑动手势从四个方向(左、右、上、下)之一“滑入”一个新的 UIView。获取 swipegesture 信息已经完成并且不是问题,但是现在,让我们说如果我向左滑动,那么我希望另一个 UIView 实例从右侧“滑入”。

具体来说,当新的 UIView 从右侧滑入时,旧的 UIView 开始向左滑出视图,直到完全滑出视图。换句话说,我希望你可以在动画期间看到两个 UIView,直到原始 UIView 不再可见。在您的 iPad 上可以看到相同类型的效果,例如,当您在主屏幕上并向左滑动时 - 当您的主屏幕滑出视图时,它会从右侧滑入另一个应用程序图标屏幕左边。我想要实现的唯一警告是,您不能在中途停止过渡。

无论如何,这是我到目前为止的代码 - 我认为我很接近但想获得一些帮助,也许可以完成我需要在这里完成的事情:

    UIView *newView = [[UIView alloc] init];
    newView.frame = CGRectMake(0, 0, TileView.frame.size.width, TileView.frame.size.height);
    [TileView addSubView:view];
    CATransition *transitionAnimation = [CATransition animation];
    [transitionAnimation setDuration:1];
    [transitionAnimation setType:kCATransitionPush];
    [transitionAnimation setSubtype:kCATransitionFromRight];
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

UIView TileView 是我的 viewController 的子视图。是否需要为 newView 进行任何其他设置以使所有内容与屏幕位置相匹配?我认为KCATransitionPush 是我正在寻找但不是 100% 确定的动画类型。

对我在这里缺少的任何帮助都会有所帮助。

4

1 回答 1

0

尝试设置这两个属性也....

transitionAnimation.fromValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0.0, 0.0, 0.0)];
transitionAnimation.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(excursion, 0.0, 0.0)];
于 2013-03-13T14:59:36.847 回答