2010-04-11 5 views
0

Я работаю над созданием сгруппированного представления таблицы. Данные загружаются в порядке, но в сгруппированном виде есть много белых пустых пространств. Они заселяются после того, как я несколько раз прокручиваю вверх и вниз. Помогите?Группированные ячейки таблицы не загружаются

Вот мой getCellForRowIndexAtPath метод:

static NSString *Id= @"CustomDiagChargeID"; 
CustomCellDiagCharges *cell = (CustomCellDiagCharges *)[tableView dequeueReusableCellWithIdentifier:Id]; 
if(cell == nil) { 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCellDiagCharges" owner:self options:nil]; 
    for (id oneObject in nib) { 
     if([oneObject isKindOfClass:[CustomCellDiagCharges class]]) 
      cell = (CustomCellDiagCharges *) oneObject; 
    } 
} 

NSUInteger row = [indexPath row]; 
DiagDetails *rowData = [preferences getDiagElementAt:indexPath.section row:row]; 
cell.code.text = rowData.ICD9Code; 
cell.desc.text = rowData.ICD9Desc; 
return cell; 

Спасибо,
Тея.

+0

Не могли бы вы добавить утверждение «NSUInteger row =», чтобы убедиться, что ваша ячейка не равна нулю? Кроме того, вы можете попробовать заполнить ячейки статическими данными? И затем попробуйте что-то вроде [NSString stringWithFormat: @ "Cell% d:% d", indexPath.section, indexPath.row]; ?? – jessecurry

+0

Пробовал заполнять статическими данными, та же проблема. Я использую сгруппированный tableView, если это как-то меняет материал? –

ответ

0

Я играл с фонами и клеточными альфаами, и как-то все ячейки сейчас загружаются. Не совсем уверен, в чем проблема. Ну что ж, программное обеспечение.

-2

С одной стороны, вы не должны объявлять Id как статический. Указатель будет недействителен после завершения первого цикла цикла, и строка будет освобождена.

Обновление: Это неверное описание. Смотри ниже.

+0

Это строковая константа из «Руководство по программированию строк»: Самый простой способ создания строкового объекта в исходном коде - использовать конструкцию Objective-C @ "...": NSString * temp = @ "/ TMP/царапина "; Обратите внимание, что при создании константы строки таким образом вы должны избегать использования каких-либо, но 7-битных символов ASCII. Такой объект создается во время компиляции и существует во время выполнения вашей программы. Компилятор делает такие константы объектов уникальными для каждого модуля, и ** они никогда не освобождаются **, хотя вы можете сохранить и освободить их, как и любой другой объект. – jessecurry

+0

Вау, это так. Ред. – Tom

1

Когда содержимое вашей камеры изменяется из-за прокрутки, это почти всегда связано с проблемой с идентификаторами вашей ячейки. Осмотрите свой объект CustomCellDiagCharges в CustomCellDiagCharges.xib и убедитесь, что его поле Идентификатор соответствует идентификатору ячейки, который вы используете в своем коде (CustomDiagChargeID).

Кроме того, если в вашем приложении есть другие таблицы, убедитесь, что вы не используете один и тот же идентификатор ячейки с другим подклассом UITableViewCell.

+0

Не повезло, идентификатор верен. Это сгруппированный tableView, если это помогает? –

+0

Хм ... Это удивительно. Это первый раз, когда я слышал про прокрутку, выявляющую несоответствия, которые не были вызваны проблемами с идентификатором повторного использования. Попробуйте установить раздел NSLog (@ ":% d, строка:% d, код: '% @', desc: '% @'", indexPath.section, indexPath.row, cell.code.text, cell.desc.text); непосредственно перед возвратной ячейкой ;. Являются ли текстовые свойства ваших ярлыков заполнены, когда ячейки кажутся пустыми? – cduhn