带有unicode文本的UILabel太多了

时间:2012-04-03 08:14:54

标签: iphone objective-c ios xcode ipad

我在iPad应用中有180个UILabelsUITableViewCells的子视图),每个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个单元格,仅此而已,直接和简单的代码。

2 个答案:

答案 0 :(得分:1)

unicode的使用不应该成为问题,因为它将以与任何其他文本类似的速度呈现。

可能有一些问题会降低您的代码速度。首先,您应该尝试使用UITableView的本机单元重用,将标签添加到UITableViewCell,然后将它们dequeueWithResusableIdentifier。您应该只在该方法返回nil时生成标签,并且您必须创建一个新的UITableViewCell(如果您已经这样做,则从原始问题中不清楚)。

此后还可以做的另一件事是确保尽可能多的视图不透明,以加快合成速度。仪器包括一个选项,可以使非透明视图着色,使其更容易。

答案 1 :(得分:0)

您可以通过多种方式优化代码:

检查您的应用是否没有泄漏。正确释放标签。 使用细胞的可重用性。我不知道你是否使用它。 因为每次滚动时都会调用cellForRowAtIndexPath委托方法。

In case you dont know about reusability try this link.