我的屏幕上已经有了一个UIView,我希望从四个方向之一(左,右,上,下)“滑入”一个新的UIView,具体取决于我检测到的扫描类型。获取swipegesture信息已经完成而不是问题但现在,让我们说如果我向左滑动然后我想要另一个UIView实例从右边“滑入”。
具体来说,当新的UIView从右侧滑入时,旧的UIView开始滑出视图向左滑动,直到它完全脱离视图。换句话说,我想有效果,你可以在动画中看到两个UIViews,直到原来的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%肯定。
对我在这里缺少的任何帮助都会有所帮助。
答案 0 :(得分:0)
尝试设置这两个属性....
transitionAnimation.fromValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0.0, 0.0, 0.0)];
transitionAnimation.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(excursion, 0.0, 0.0)];