clipbounds 为YES的时候,Scroll view的性能非常差

如果我们在一个scrollview里面添加了一个cell,并且设置了layer为圆角,clipbounds为yes。这个时候我是在滚动scrollview的时候,就会非常卡。请问有什么提升性能的办法。我需要的是一个类似mask的功能,因为这个cell里面可能会有很多层子view。自己来重写drawRect,并且设置clip path会不会好一些?

  • 在ViewDidLoad 里添加UIButton的点击事件,不能触发。
  • iOS 上传图片 失败 大神路过帮忙解答一下
  • iOS 如何生成一个32位的UUID?
  • 关于iOS里IBOutlet对象的内存管理
  • iOS崩溃日志
  • 为什么当 Core Animation 完成时,layer 又会恢复到原先的状态?
  • ReactiveCocoa5.0 绑定问题
  • 谁用react native 做过实际项目的?
  • ios中如何实现点击button后弹层并且不响应屏幕其他按钮,当点击屏幕其他地方时弹层消失?
  • iOS app如何在进入背景模式的时候依然播放音乐
  • 关于CATextLayer与UILabel
  • ios9的环境怎么没有呢?
  • 2 Solutions collect form web for “clipbounds 为YES的时候,Scroll view的性能非常差”

    clipbounds为yes不是影响性能的原因,原因是layer为圆角。不信你把圆角去了试试。同样的问题还出现在直接用layer加阴影上。

    一般情况下(有视觉给你做切图或者你自己会切的时候)制作圆角控件应当使用和背景色吻合的圆角图案做遮罩。

    maskImage为圆角遮罩,单通道灰阶图,可以在ps里做好。

        CGImageRef maskImageRef = maskImage.CGImage; 
        CALayer *maskLayer = [CALayer layer];
        maskLayer.contents = (__bridge id)maskImageRef;
        imageView.layer.mask = maskLayer;

    这篇文章提到了正确的解决方法:http://www.princeton.edu/~crmarsh/ios_performance/。

    layer.shadowPath是关键

    .