2012-06-02 113 views
1

我正在使用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個阿拉伯字符串。

我感謝任何幫助!

+0

阿拉伯語的長字符串是靜態還是動態的(就像從服務器拉出來的一樣)? –

+0

這些字符串是動態的,但在UITableView開始繪製之前完全加載。在渲染/繪製單元時,它們根本不會改變。 – Anton

+0

是否需要用500個字符串填充單元格?你不能只顯示它的一部分? –

回答

0

似乎有什麼在這裏拖延執行被設置在一個可編輯的UITextView

按照討論的長文,使得UITextView的非編輯增加了性能 我建議,使其不可編輯,也許以後將其更改爲可編輯

+0

不幸的是,這不適用於我的阿拉伯語。它可以用任何數量的文本以英文完美地工作,但不能用阿拉伯語。 – Anton

+0

你是對的,我只是用UITextView測試它,它確實很慢:S –

+0

這裏的問題是你使用的是UITextView,當它從UI線程中調用它時會變慢,所以我不認爲你可以更快地做到這一點,你將不得不實現一個詳細的視圖來編輯文本 –

相關問題