【问题标题】:drawing shadow around a view slows down my transition,CALayer,ios在视图周围绘制阴影会减慢我的转换速度,CALayer,ios
【发布时间】:2012-10-27 03:27:32
【问题描述】:

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];

那么过渡一点也不顺畅。但是,如果它删除了用于绘制阴影的代码块,则过渡像往常一样平滑

你对这个问题有什么想法吗?如果您之前经历过,请帮助 谢谢

【问题讨论】:

    标签: objective-c ios core-graphics calayer


    【解决方案1】:

    指定 CALayer shadowPath。 Apple 表示,“指定显式路径通常会提高渲染性能。”

    【讨论】:

      【解决方案2】:

      如果 Jon 的建议不起作用,您可以尝试为您的视图拍摄 UIImage 快照并在动画期间使用这些快照。我们为一个项目做到了这一点——在实际视图上放置一个 UIImageView,然后在动画结束时将其移除。 iOS 上的阴影很慢。

      【讨论】:

        【解决方案3】:

        您可以告诉 CALayer 栅格化阴影。

        【讨论】:

          猜你喜欢
          • 2017-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多