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

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

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


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

layer.shadowPath是关键


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

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

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

    CGImageRef maskImageRef = maskImage.CGImage; 
    CALayer *maskLayer = [CALayer layer];
    maskLayer.contents = (__bridge id)maskImageRef;
    imageView.layer.mask = maskLayer;
【热门文章】
【热门文章】