之前在维护一个项目时,发现当前UITableView中 UITableViewCell在iPhone4s上滑动不流畅,然后就分析代码,结果发现在自定义cell里没有为其 backView.layer 设置缓存。
正确的代码如下:
// 设置layer圆角半径
_cellBackView.layer.cornerRadius=2.0;
// 即阴影颜色值
_cellBackView.layer.shadowColor=[[UIColor colorWithWhite:0.3 alpha:0.5] CGColor];
// 即阴影相对于Y轴有1个像素点的向下位移。
_cellBackView.layer.shadowOffset = CGSizeMake(0, 1);
//设置阴影的不透明度
_cellBackView.layer.shadowOpacity = 1;
// 阴影的模糊度
_cellBackView.layer.shadowRadius = 1.0;
// 阴影的位置
_cellBackView.layer.shadowPath = [[UIBezierPath bezierPathWithRect:_cellBackView.bounds] CGPath];
//设置缓存 仅复用时设置此选项。
_cellBackView.layer.shouldRasterize=YES;
//设置抗锯齿边缘
_cellBackView.layer.rasterizationScale=[UIScreen mainScreen].scale;
详解 layer :