在视图周围绘制阴影会减慢我的过渡,CALayer,ios

MyViewControllerB.xib包含

view( UIView ) | |__image (UIImageView) | |__view (UIView) | |__text (UITextView) | |__view (UIView) ( shadow is adding at here ) 

然后我在底部的视图周围添加一个阴影如下

 - (void)viewDidLoad { [super viewDidLoad]; [self.bottomView.layer setMasksToBounds:NO]; self.bottomView.layer.shadowColor = [UIColor blackColor].CGColor; self.bottomView.layer.shadowRadius = 5; self.bottomView.layer.shadowOpacity = 1; self.bottomView.layer.shadowOffset = CGSizeMake(0 , 0 ); } 

当我做pushViewController: animated:在MyViewControllerA:

 @implementation MyViewControllerA MyViewControllerB *controller = [[MyViewControllerB alloc] initWithNibName:@"MyViewControllerB" bundle:nil]; [self.navigationController pushViewController:controller animated:YES]; 

那么过渡是不平坦的。 但是,如果删除用于绘制阴影的代码块,则平滑过渡是平常的

你有关于这个问题的任何想法。 如果您在感谢之前经历过,请帮助

指定CALayer shadowPath 。 苹果公司表示:“指定明确的path通常会提高渲染性能。”

如果Jon的build议不起作用,您可以尝试使用视图的UIImage快照,并在animation过程中使用这些快照。 我们为一个项目做了这个 – 把UIImageView放在实际的视图上,然后在animation结束时删除它。 iOS上的阴影很慢。

你可以告诉CALayer光栅化阴影。