我遇到的问题是coreAnimation占用了大量内存。每次重新绘制UItableview的所有单元格时,它都会像我在xcode Profiler中看到的那样不断增加。
我删除了自定义UITableviewCell的drawRect方法并再次尝试但出现了同样的问题。
如果我删除cellForRowAtIndexPath中的代码,它就可以解决问题。所以我认为它就在那里。但我仍然无法弄明白。
我没有使用任何动画,我没有使用Core Graphics绘制任何东西。有什么想法吗?
UITableViewCellForRow *cell = [tableView dequeueReusableCellWithIdentifier:contentRowsIdForCaching];
if (cell == nil)
{
cell = [[UITableViewCellForRow alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:contentRowsIdForCaching];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
NSArray *arrValues = [self getRow:indexPath.row];
cell.arrValues = arrValues;
arrValues = nil;
}
else
{
[self getRowIntoArray:indexPath.row array:[cell getMutableValues]];
[cell setNeedsDisplay];
}
编辑:我更改了reuseidentifier,告诉UITableView的cellForRowAtIndexpath重新创建所有单元格,然后调用reloaddata方法。我是否需要释放或解除那些较旧的细胞?
答案 0 :(得分:0)
我读了一篇关于UITableview性能的Apple文档,人们应该只在表格单元格中创建一次子视图布局,并在需要时调整大小,重新定位,隐藏/显示它们。