2014-01-15 3 views
1

В интерфейсе Builder в UITableViewController я указал количество ячеек прототипа и сконфигурировал их. В коде установлены соответственно numberOsSectionsInTableView: и tableView:numberOfRowsInSection:. В этом случае 5 клеток.Отображаются ячейки прототипа IB UITableView?

Как-то в симуляторе отображаются более (пустые) ячейки прототипа.

enter image description here

Interesstingly У меня есть еще один проект, где я сделал то же самое, но правильное количество опытных образцов клеток шоу.

enter image description here

Как это исправить и просто показать желаемое количество prototpye клеток J

ответ

1

Попробуйте этот код в viewDidLoad:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
*// self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];* 
    *//Since memory management is controlled by ARC now, so ignore autorelease* 
    self.tableView.tableFooterView = [[UIView alloc] init] ; 
} 

Надеется, что это помогает!

2

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

Первое, что происходит с прототипом ячеек, не показывают, сколько ячеек будет отображаться. Когда вы устанавливаете количество статических ячеек, сколько будет отображаться, динамические ячейки - это чистые сланцы. Вы можете использовать их для создания 1 динамической ячейки с держателем места для изображения и держателем места для фрагмента текста. Тогда вы скажите TableView, сколько строк вы хотите, и вы получите ссылку на многоразовую ячейку, вызвав строку:

[tblView dequeueReusableCellWithIdentifier:@" <id> "]; 

Затем вы должны установить изображение и текст соответствующим образ на возвращаемую клетку.

Что вы делаете, это создание X «Пустых сланцев» со значениями по умолчанию и не переписывание этих значений. То, как я упомянул, было разработано по причинам производительности и причинам использования памяти. То, как я упоминал, имеет один экземпляр экземпляра в памяти, который используется повторно, в то время как у вас есть X в памяти, все из которых используются один раз.

Во-вторых, причина, по которой вы видите пустые строки, заключается в том, что в табличном представлении, не использующем сгруппированный стиль, tableView будет отображать столько строк, сколько в пределах границ, которые вы ему дали. Независимо от того, сколько вы говорите, чтобы отображать.

Причина этот код:

self.tableView.tableFooterView = [[UIView alloc] init]; 

удаляет пустые строки происходит потому, что сноска будет добавлена ​​после последней строки с содержанием, и Tableview не будет отображать любые строки, пустые или иным образом после этой точки.

Надеюсь, это поможет.

+0

Это помогло понять. В представлении производительности похоже, что я сделаю одну ячейку прототипа и сконфигурирую остальные по коду. – jerik

Смежные вопросы