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 );
}
当我在MyViewControllerA上做pushViewController: animated:
时:
@implementation MyViewControllerA
MyViewControllerB *controller = [[MyViewControllerB alloc] initWithNibName:@"MyViewControllerB" bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
然后过渡根本不顺利。但是,如果它删除了用于绘制阴影的代码块,那么转换就像往常一样平滑
您对此问题有任何想法吗?如果您以前经历过,请帮忙 感谢
答案 0 :(得分:4)
指定CALayer shadowPath
。 Apple表示,“指定显式路径通常可以提高渲染性能。”
答案 1 :(得分:2)
如果Jon的建议不起作用,您可以尝试拍摄视图的UIImage快照,并在动画期间使用它们。我们为一个项目做了这个 - 在实际视图上放置一个UIImageView,然后在动画结束时删除它。 iOS上的阴影很慢。
答案 2 :(得分:0)
您可以告诉CALayer光栅化阴影。