我有一个 UITableView,每个单元格有三个 UIImageView View ,一次在 View 上显示三个单元格(总共九个 UIImageView View )。把它想象成一个书架。有时我可以拥有多达500本书。

我已经使用以下代码将阴影添加到了UIImageView中:

UIImageView *itemImageView = [[UIImageView alloc] initWithFrame:CGRectMake(25, 7, 65, 75)];
itemImageView.contentMode = UIViewContentModeScaleAspectFit;
itemImageView.tag = 6;
itemImageView.layer.shadowColor = [UIColor blackColor].CGColor;
itemImageView.layer.shadowOffset = CGSizeMake(3, -1);
itemImageView.layer.shadowOpacity = 0.7;
itemImageView.layer.shadowRadius = 3.0;
itemImageView.clipsToBounds = NO;
[cell.contentView addSubview:itemImageView];

当我添加阴影代码时,如上所示,滚动性能完全被杀死并变得不稳定。每个图像都有不同的 Rect,因此在滚动时必须为每个项目创建阴影。任何人都有关于如何在 UITableView 上为我的图像添加阴影而不会出现此问题的任何提示?

最佳答案

如果添加,您可能会看到性能改进

itemImageView.layer.shadowPath =
       [UIBezierPath bezierPathWithRect:itemImageView.layer.bounds].CGPath;

但一般来说,像这样的层操作会降低表 View 中的性能。我遇到了完全相同的问题,我们只是消除了阴影效果。这不值得。

10-08 17:42