我正在使用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個字符串填充單元格?你不能只顯示它的一部分? –