Iphone Прокрутка таблицы с пользовательскими ячейками слишком медленная

У меня возникла эта проблема при развертывании моего приложения на iphone, которое не было обнаружено на симуляторе.

этот код клеточной породы...

    - (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 мс. Проблема в другом месте, я предполагаю, что есть способ оптимизировать этот код, и мне интересно, как пользовательская ячейка влияет на него только на ячейку с меткой и текстовым полем, связанным с этим ViewController. Любые идеи.

Ответы

Ответ 1

Хорошо, основная проблема с производительностью заключалась в округлении углов подзонов содержимого. используя QuartzCore:

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

Я удалил те и уменьшил размеры элементов управления, чтобы поместиться внутри ячейки разделенной таблицы. и теперь они смотрят вокруг, но текстовое поле и ярлык - нет. это заметно улучшило мою прокрутку. Спасибо всем за вашу помощь.

Ответ 2

Когда вы создаете ячейку, вы устанавливаете идентификатор в "ячейку", но когда вы ее деактивируете, вы ищете @ "MyIdentifier". Похоже, вы каждый раз воссоздаете ячейку, хотя это.