gpt4 book ai didi

ios - 带有单元格 subview 的 UITableView 滚动性能不佳。

转载 作者:行者123 更新时间:2023-11-28 22:55:06 24 4
gpt4 key购买 nike

我有一个包含很多行的 UITableView。每行都有一个 UIView,我在 cellForRowAtIndexPath 中编辑它。我的问题是这在 iPod touch 上非常滞后。我不确定为什么会发生这种情况,因为 iPod 应该能够同时在屏幕上显示 11 个以上的 UIViews 吗?有谁知道为什么会这样?

编辑 - 这是代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIView *colorView = (UIView *)[cell viewWithTag:1];
UILabel *label = (UILabel *)[cell viewWithTag:2];
colorView.layer.cornerRadius = 10;
colorView.layer.borderColor = [UIColor blackColor].CGColor;
colorView.layer.borderWidth = 2.0f;
colorView.layer.masksToBounds = YES;
switch (indexPath.row) {
case 0:
label.text = @"White";
colorView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
break;
case 1:
label.text = @"Olive";
colorView.backgroundColor = [UIColor colorWithRed:0.814 green:0.551 blue:0.119 alpha:1];
break;
case 2:
label.text = @"Dark Blue";
colorView.backgroundColor = [UIColor colorWithRed:0.036 green:0 blue:1 alpha:1];
break;
case 3:
label.text = @"Dark Green";
colorView.backgroundColor = [UIColor colorWithRed:0 green:0.387 blue:0.006 alpha:1];
break;
case 4:
label.text = @"Orange";
colorView.backgroundColor = [UIColor colorWithRed:1 green:0.500 blue:0 alpha:1];
break;
case 5:
label.text = @"Dark Brown";
colorView.backgroundColor = [UIColor colorWithRed:0.399 green:0.269 blue:0.137 alpha:1];
break;
case 6:
label.text = @"Dark Red";
colorView.backgroundColor = [UIColor colorWithRed:0.530 green:0.017 blue:0 alpha:1];
break;
case 7:
label.text = @"Maroon";
colorView.backgroundColor = [UIColor colorWithRed:0.502 green:0 blue:0.251 alpha:1];
break;
case 8:
label.text = @"Yellow";
colorView.backgroundColor = [UIColor colorWithRed:0.865 green:0.864 blue:0.002 alpha:1];
break;
case 9:
label.text = @"Purple";
colorView.backgroundColor = [UIColor colorWithRed:0.460 green:0 blue:0.865 alpha:1];
break;
default:
label.text = @"";
colorView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
break;
}
return cell;
}

谢谢

最佳答案

您可以在这里做一些事情。

打开 quartz 调试(在使用仪器的设备上,或者最近在模拟器中)。颜色混合层 - 你应该看到大部分是绿色的。如果不这样做,请确保将新 View 标记为不透明。滚动透明 View 需要大量性能。

如果这没有帮助,请使用仪器中的时间分析器进行分析。时间花在哪里?例如,您是否应该缓存用于背景的颜色?

您的图层属性最好只设置一次。自定义单元格子类中的 awakeFromNib 将是执行此操作的好地方。

关于ios - 带有单元格 subview 的 UITableView 滚动性能不佳。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com