我在iPad应用中有180个UILabels
(UITableViewCells
的子视图),每个UILabel
的宽度为155宽度X 155,每个都包含大量的Unicode文本(阿拉伯语)语言),当我向下滚动TableView
它挂起1秒钟然后继续正常滚动时,这会在用户每次滚动尝试时发生,并在iPAD2设备上进行测试。
但是,当我将文本更改为英语(也包含大量英文文本)时,TableView
不会挂起并正常滚动。
任何人都知道如何用Unicode文本解决这个问题?
提前非常感谢你。
编辑:
这里的代码很大,所以简而言之,我在UILabel
方法中使用这样的循环创建每个[[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
:cellForRowAtIndexPath
,然后在根据界面方向的相同方法,之后我将每个UILabel
添加到单元格中,如下所示:[cell.contentView addSubView:myLabel];
。每个单元格包含4个'UILabels',所以我总共有45个单元格,仅此而已,直接和简单的代码。
答案 0 :(得分:1)
unicode的使用不应该成为问题,因为它将以与任何其他文本类似的速度呈现。
可能有一些问题会降低您的代码速度。首先,您应该尝试使用UITableView的本机单元重用,将标签添加到UITableViewCell,然后将它们dequeueWithResusableIdentifier。您应该只在该方法返回nil时生成标签,并且您必须创建一个新的UITableViewCell(如果您已经这样做,则从原始问题中不清楚)。
此后还可以做的另一件事是确保尽可能多的视图不透明,以加快合成速度。仪器包括一个选项,可以使非透明视图着色,使其更容易。
答案 1 :(得分:0)
您可以通过多种方式优化代码:
检查您的应用是否没有泄漏。正确释放标签。
使用细胞的可重用性。我不知道你是否使用它。
因为每次滚动时都会调用cellForRowAtIndexPath
委托方法。