2012-05-18 2 views
0

Итак, я внедрил ячейку с разной высотой. Проблема в том, что иногда, когда ячейка загружается, высота, которая у нее есть, является неправильной, и мне пришлось бы прокручивать вниз до тех пор, пока ячейка не будет видна, а затем снова прокрутит резервную копию, так что она будет повторно отображена и будет иметь правильную высоту , Как это исправить?Раскладка ячейки UITableView при переработке ячеек

+0

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

ответ

1

Прежде всего, дать код поможет.

1) Если у вас есть только несколько заданных высот. Например, 3 разных высоты ячеек, тогда вы можете создать 3 разных идентификатора ячейки, чтобы повторно используемые ячейки были неправильной высотой.

2) Если ячейки являются динамическими высотами, то убедитесь, что при повторном использовании ячейки, которую вы правильно устанавливаете. Например, если вы устанавливаете свойство height в ячейке == nil. Вы устанавливаете его только при создании новых ячеек.

if(cell == nil) 
{ 
    // Create new cell 
} 

// Set cell height. 

также вы пробовали использовать

– tableView:heightForRowAtIndexPath: 
+0

Это верно, однако, если вы много вычисляете в этом методе, ваша таблица будет загружаться очень медленно (она запрашивает высоту всех строк перед отображением данных) – borrrden