我正在使用iOS 5并制作iPad应用程序。我在我的应用程序中有一个UITableView,每个单元格都包含一个UITextView。它经历非常慢的滚动,但是,当非英文文本加载到文本视图。使用非英语(阿拉伯语,中文,希伯来语,乌尔都语等)时UITableView滚动缓慢文本
这是我创建的示例项目来演示该问题。它使用一个UITableView,每一个的UITableViewCell有它的1标签一个的UITextView它滚动速度非常慢:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 20;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"BasicCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UITextView *textView = (UITextView *)[cell viewWithTag:1];
textView.text = @"أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة. أَبْجَدِيَّة عَرَبِيَّة.";
return cell;
}
我已经使用的NSLog来验证此行仅此一项造成的放缓。删除它使一切工作完美,但我需要设置文本。我已经阅读了关于性能调整的所有内容,但这对我来说仍然是一个巨大的问题。
与英语,法语,德语(可能与字符集或unicode相关的语言)相比,慢速滚动只是阿拉伯语,中文,希伯来语等语言的问题一个包含5000个字符的英文字符串根本没有减速但是有200个阿拉伯字符串。
我感谢任何帮助!
阿拉伯语的长字符串是静态还是动态的(就像从服务器拉出来的一样)? –
这些字符串是动态的,但在UITableView开始绘制之前完全加载。在渲染/绘制单元时,它们根本不会改变。 – Anton
是否需要用500个字符串填充单元格?你不能只显示它的一部分? –