0

我有一个表格视图,我在其中自定义了视图单元格,我想在它们上绘制阴影。我已经使用了视图的图层,但是如果我通过这种方式绘制阴影,我的 tableview 非常非常慢。这是代码:

UIView  *foreground             = [[UIView alloc] initWithFrame:CGRectMake(8., 8., 305, 290.)];
foreground.tag                  = kForegroundTag;
foreground.backgroundColor      = [UIColor whiteColor];
/* Draw from here */
foreground.layer.shadowColor    = [UIColor blackColor].CGColor;
foreground.layer.shadowOpacity  = 0.7;
foreground.layer.shadowOffset   = CGSizeMake(0., 1.);
foreground.layer.shadowRadius   = 3.;

谢谢你的帮助

4

1 回答 1

0

使用这些属性绘制阴影的性能可能很差。不过,您有几个选择:

您可以shouldRasterize在图层上设置以将其转换为将图层渲染为位图而不是重绘(注意:这仅在您的视图不需要经常重绘时才有用,并且如果使用最终可能会比现有性能更差在错误的情况下)

另一种选择是也使用shadowPath图层上的属性。根据CALayer文档:

指定显式路径通常会提高渲染性能

我肯定会使用该shadowPath属性,并且根据视图的性质,也可能设置shouldRasterize标志

于 2012-08-29T22:17:13.943 回答