ios - clipbounds 为YES的时候,Scroll view的性能非常差
黄舟
黄舟 2017-04-17 11:13:44
[iOS讨论组]

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
伊谢尔伦

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是关键

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号