在UITableView上为UIImageView添加了阴影会导致性能下降......为什么?

Eth*_*len 7 iphone xcode cocoa-touch objective-c ios

我有一个UITableView具有三个UIImageView每个细胞视图,其中在一个时间视图上三种细胞显示(总共九个UIImageView视图).把它想象成一个书架.有时我可以拥有多达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];
Run Code Online (Sandbox Code Playgroud)

当我添加阴影代码时,如上所示,滚动性能完全被杀死并且变得不连贯.每个图像都有不同的图像,Rect因此在滚动时必须为每个项目创建阴影.任何人都有关于如何在UITableView没有此问题的情况下为我的图像添加阴影的任何提示?

Mar*_*off 9

如果添加,您可能会看到性能提升

itemImageView.layer.shadowPath =
       [UIBezierPath bezierPathWithRect:itemImageView.layer.bounds].CGPath;
Run Code Online (Sandbox Code Playgroud)

但总的来说,像这样的层操作会在表视图中扼杀性能.我遇到了完全相同的问题,我们只是消除了阴影效果.这不值得.


Mat*_*ias 0

您激活重用吗?如果没有,每次视图更改时(例如,在滚动期间),单元格将重做。这肯定会消耗大量性能。