2011-08-27 3 views
14

Я использую ниже код, чтобы создать более широкий и более чистый вид на обычном (не сгруппированном) UITableView. Он отлично работает, если у меня нет пустой таблицы, тогда высота ячейки устанавливается на нормальную высоту. У меня стандартный Сепараторный стиль (серые линии), поэтому он выглядит грубым, если он пуст.Высота ячеек UITableview не работает в пустой таблице?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    return 75; 
} 

Любая идея, как исправить это?

EDIT:

Обнаружили даже лучшее решение, где я даже не отображать строки, если таблица «Empty» и отображает руководство текст вместо.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if ([dataArray count] == 0) { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
     [pleaseAddStuffText setHidden:NO]; 
    } else { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 
     [pleaseAddStuffText setHidden:YES]; 
    } 
    return [dataArray count]; 
} 
+1

Под «пустой стол», вы имеете в виду ваш 'numberOfSectionsInTableView:' и/или 'tableView: numberOfRowsInSection:' возвращает 0? –

+0

Исправьте моего хорошего сэра. – David

+1

, тогда ваш 'tableView: heightForRowAtIndexPath:' никогда не должен вызываться, вы можете установить контрольную точку, чтобы проверить это. –

ответ

33

Вы должны быть в состоянии заставить высоту строки в любое время, установив RowHeight, даже если число строк составляет 0.

self.tableView.rowHeight = 75.0; 

Вы также можете установить его в IB.

heightForRowAtIndexPath, кажется, вызывается только в том случае, если ячейка настроена в cellForRowAtIndexPath, тогда как это свойство tableview и всегда присутствует.

+0

Супер простой, работает отлично. –

+0

Также работает над NSTableView для тех, кто интересуется. – Andrew

-1

Что вы подразумеваете под пустым столом? Если полная таблица пуста, то возвращаемое количество секций для таблицы пуст. Это означает, что ничего не будет показано на столе вообще.

Если у вас есть пустая таблица table = table, то вы должны убедиться, что cell at indexpath возвращает что-то, где вам просто нужно положить пустые значения. Тогда у вас будет пустая строка между вашими другими строками в вашей таблице.

Что конкретно должно быть/должно быть пустым?

+0

Пустая таблица = Нет данных/ячеек для отображения. Я определяю высоту между Separatorstyle. – David

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