Ios UIView滑动过渡淡入淡出
我的一个视图控制器中有一些代码,可以从一个视图到另一个视图进行滑动转换:Ios UIView滑动过渡淡入淡出,ios,uiview,core-animation,transitions,catransition,Ios,Uiview,Core Animation,Transitions,Catransition,我的一个视图控制器中有一些代码,可以从一个视图到另一个视图进行滑动转换: -(void)transitionToNewView:(UIView*)newView { UIView *superView = [self.view superview]; [superView addSubview:newView]; newView.frame = superView.bounds; [self.view removeFromSuperview];
-(void)transitionToNewView:(UIView*)newView
{
UIView *superView = [self.view superview];
[superView addSubview:newView];
newView.frame = superView.bounds;
[self.view removeFromSuperview];
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[superView layer] addAnimation:animation forKey:@"keygoeshere"];
}
滑动过渡似乎工作正常,但除了滑动外,我还看到新视图从空白屏幕淡入。我怀疑这是因为我在超级视图中添加了一个以前没有的新视图。我想做的是同样的事情,但不褪色。我怎么能做到这一点呢?我对你的问题没有一个直接的答案,但我发现处理两个视图之间转换的一种方法是像你那样将新视图添加到superview中,拍摄每个视图的屏幕截图,实现动画,并在转换完成后删除两个屏幕截图视图。我更详细地解释了我所做的事情,效果很好。我认为解决你面临的问题值得一试。有没有其他理由不在UIView上使用animateWithDuration方法?我认为kCATransitionPush过渡在设计的同时会褪色。我可以发誓我记得在什么地方读过 使用方法transitionFromView:toView:duration:options:completion:,构造视图到视图的推送转换将非常简单
将UIViewAnimationOptionTransitionNone传递给过渡选项,然后使用动画块将当前视图滑出屏幕,同时从相反方向滑动屏幕上的新视图。当发生错误或向动画对象传递无效参数时,核心动画默认为淡入淡出。