我正在使用iOS 5并制作iPad应用程序。我的应用程序中有一个UITableView,其中每个单元格都包含一个UITextView。但是,当非英文文本加载到文本视图中时,它会经历非常慢的滚动。
这是我为展示问题而创建的示例项目。这使用了一个UITableView,其中每个UITableViewCell都有一个UITextView,标签为1.它滚动速度非常慢:
- (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的阿拉伯字符串。
我感谢任何帮助!
答案 0 :(得分:0)
似乎延迟执行的是在可编辑的UITextView中设置长文本
根据讨论,使UITextView不可编辑提高了性能 我建议让它不可编辑,以后可能会将其更改为可编辑的