2010-11-29 46 views
1

在iphone上部署我的應用程序時,我沒有在模擬器上檢測到這個問題。iphone使用自定義單元格滾動tableview的速度太慢

這個cellforrow的代碼...

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    NSLog(@"beginning cellforRowAtIndexPath for section %d, and cell %d",[indexPath indexAtPosition:0],[indexPath indexAtPosition:1]); 

    static NSString *MyIdentifier = @"MyIdentifier"; 
    NSString *fieldTitle; 
    NSString*fieldDescription; 
    [_stopWatch start]; 
    [PersonalSection GetField:&fieldTitle AndValue:&fieldDescription UsingIndexPath:indexPath AndPersonalInformation:_personalInfo]; 


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
    if (cell == nil) { 
     [[NSBundle mainBundle] loadNibNamed:@"ViewContent" owner:self options:nil]; 
     cell = tvCell; 
     self.tvCell=nil; 

     ((UILabel*) [cell.contentView viewWithTag:1]).layer.cornerRadius=11; 
     ((UILabel*) [cell.contentView viewWithTag:2]).layer.cornerRadius=11; 
    } 


    UILabel*mainLabel=(UILabel*) [cell.contentView viewWithTag:1]; 
    mainLabel.text=fieldTitle; 
    //mainLabel.textColor = [UIColor colorWithRed:0.745 green:0.116 blue:0.176 alpha:1.0]; 

    UILabel*detailLabel=(UILabel*)[cell.contentView viewWithTag:2]; 
    detailLabel.text=fieldDescription; 
    [_stopWatch stop]; 
    NSLog(@"---------End cellforRowAtIndexPath"); 

    return cell; 
} 

其餘是部分,它就像回3或5沒有真正的瓶頸在那裏。 所以我想知道什麼是如此緩慢。 現在數據提取「[PersonalSection GetField:& fieldTitle ...」是相當快,它需要在iPhone上最多0.1毫秒。問題在別的地方,我猜想有一種優化代碼的方法,我想知道自定義單元的影響,它只是一個標籤和textfield鏈接到這個ViewController的單元格。 任何想法。

回答

4

好的,主要的性能問題是四捨五入的contentview子視圖的角落。 使用QuartzCore:

#import <QuartzCore/QuartzCore.h> 
((UILabel*) [cell.contentView viewWithTag:1]).layer.cornerRadius=11; 

我除去那些,降低了控制的尺寸,以適應分段表的單元格內。現在他們看起來很圓,但文本框和標籤都沒有。 這已經固定我的滾動性能顯着。 謝謝大家的幫助。

+0

這是真正的性能和折衷之間的選擇.. – Kjuly 2013-05-12 00:24:54

4

當您創建單元格時,您將標識符設置爲@「cell」,但當您將其出列時,您正在尋找@「MyIdentifier」。它看起來像你每次都在重新創建單元。

+0

實際上我使用相同的標識符出列,但是這是一個錯誤的事情。但是我發佈了錯誤的代碼,我只是更新了它。 – LolaRun 2010-11-30 08:18:50

相關問題