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

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

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

  • ijkplayer的播放本地视频的方法是啥?
  • 手机端web页面,怎么判断ios是否安装了某个app?
  • 请教一个IOS的布局问题
  • 如何让Xcode添加约束之后不自动update frames
  • 让 uitableviewcell 的分割线左对齐,编程方式
  • iOS 重命名项目文件夹名报错
  • ios 蓝牙如何获取Device Infomation
  • Swift 使用 SVG 文件
  • 用户点击textfield后,弹出的键盘变高了,而且上下字母之间的间隔也变大了。代码使用的是系统自带的键盘。
  • pod install 时 怎么样设置 才能不重新按装已经安装的库
  • iOS ipa 下载链接问题。