我有一个UIScrollView
类似Facebook新闻提要的功能。我以为我的元素在降低滚动fps的速度。通过消除过程,我发现阴影会使我的应用变慢。
的UIView
滚动视图内盒具有这样的配置:
self.layer.shadowColor = UIColor.blackColor().CGColor
self.layer.shadowOffset = CGSizeMake(0, 2)
self.layer.shadowRadius = 2
self.layer.shadowOpacity = 0.15
像新闻提要一样,我的滚动视图有很多框,因此有UIView
带有自己的阴影的。如何在不降低我的应用速度的情况下进行此操作?
关于加速UIScrollViews有很多东西:
如果您使用自定义CALayer实例(尤其是带有阴影的实例)需要处理能力,则应使用
scrollView.layer.shouldRasterize = YES;
scrollView.layer.rasterizationScale = [UIScreen mainScreen].scale;
也shadowPath
可以加快滚动浏览速度,如下所示:
[scrollView.layer setShadowPath:[[UIBezierPath bezierPathWithRect:myView.bounds] CGPath]];
设置shadowPath可使iOS每次绘制视图时都不必重新计算应如何绘制阴影,从而提高了性能。
很快,像这样的事情:
let shadowPath = UIBezierPath(rect: view.bounds);
view.layer.masksToBounds = false;
view.layer.shadowColor = UIColor.blackColor().CGColor;
view.layer.shadowOffset = CGSizeMake(0, 0.5);
view.layer.shadowOpacity = 0.2;
view.layer.shadowPath = shadowPath.CGPath;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句