Iphone 使用unicode文本的UILabel太多

Iphone 使用unicode文本的UILabel太多,iphone,objective-c,ios,xcode,ipad,Iphone,Objective C,Ios,Xcode,Ipad,我在iPad应用程序中有180个UILabel(UITableViewCells的子视图),每个UILabel都有155宽X 155高,每个都包含大量Unicode文本(阿拉伯语),当我向下滚动TableView时,它会挂起1秒,然后继续正常滚动,用户每次尝试滚动时都会出现这种情况,并在iPAD2设备上进行了测试 但是,当我将文本更改为英语(也是大量英语文本)时,TableView不会正常挂起和滚动 有人知道如何用Unicode文本解决这个问题吗 事先非常感谢你 编辑: 代码非常大,因此简单地说

我在iPad应用程序中有180个
UILabel
UITableViewCells
的子视图),每个
UILabel
都有155宽X 155高,每个都包含大量Unicode文本(阿拉伯语),当我向下滚动
TableView
时,它会挂起1秒,然后继续正常滚动,用户每次尝试滚动时都会出现这种情况,并在iPAD2设备上进行了测试

但是,当我将文本更改为英语(也是大量英语文本)时,
TableView
不会正常挂起和滚动

有人知道如何用Unicode文本解决这个问题吗

事先非常感谢你

编辑:


代码非常大,因此简单地说,我使用如下循环创建每个
UILabel
[[UILabel alloc]initWithFrame:CGRectZero]autorelease]
cellforrowatinexpath
方法中,然后根据界面方向以相同的方法播放帧,然后我将每个
UILabel
添加到单元格中,如下所示:
[cell.contentView addSubView:myLabel]。每个单元格包含4个这样的“UILabel”,因此我总共有45个单元格,仅此而已,都是简单明了的代码。

有很多方法可以优化代码:

检查一下你的应用程序是否没有泄漏。适当释放标签。 使用单元的可重用性。我不知道你是否在用它。 因为每次滚动
cellforrowatinexpath
delegate方法时都会调用


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


可能有一些问题会减慢代码的速度。首先,您应该尝试使用UITableView的本机单元重用,将标签添加到UITableView单元,然后使用resusableidentifier将其退出队列。只有当该方法返回nil并且您必须创建新的UITableViewCell时,才应该生成标签(如果您已经这样做了,从原始问题看不清楚)


在此之后,您还可以做另一件事,确保尽可能多的视图是不透明的,以加快合成速度。Instruments包括一个选项,可以对非不透明视图进行着色,以简化此操作。

我不知道直接答案,但无论如何,请尝试优化您的应用程序,使其尽可能快地为
UITableViewCells
的子视图服务,因为存在另一个潜在威胁。如果用户的滚动速度太快,以至于单元格在其内容呈现之前就被滚动出去,则整个
UITableView
将被清空,并且在不重新加载整个视图的情况下无法恢复。我想问题在于Unicode文本的大小,在将文本分配到标签之前,仍然找不到减小此大小的方法。你认为创建一个包含180个标签的视图并加载大量文本是响应迅速且整洁的智能手机应用程序设计的最佳方法吗?是的,在用数据填充大表单的情况下,如果你真的需要那么多标签和那么多文本,在加载视图之前将它们绘制到
UIImages
中,并显示
uitableview
中的就绪图像可能是一个好主意。通过这种方式,您可以预渲染文本(我想这需要很多时间),并在需要显示文本时节省处理时间。我使用了dequeueReusableCell,但没有任何好处。在这种情况下,内存分配将比实际重新绘制快得多。您能给我看一下您的代码吗。因为加载多个图像可以在一定程度上进行优化,所以我们可以优化加载标签中的文本,正如我在问题中提到的,代码非常庞大,不能在这里使用。你可以使用pastebin。。。看,没有密码,我们不能在空中发射子弹。。我们提到的只是建议。如果您发布代码,我们将能够以更好的方式帮助您。使用了dequeueWithResusableIdentifier,但没有任何明显的区别,正如我在问题中提到的,当文本为英语时,tableView会正常滚动,而当文本为Unicode时,tableView会异常滚动