Покажите пустой UITableViewCells в пользовательском UITableView

Я пытаюсь настроить UITableView. До сих пор это выглядит хорошим. Но когда я использую пользовательский подкласс UITableViewCell, я не получаю пустые ячейки таблицы, когда существует только 3 ячейки:

сопроводительный текст http://img193.imageshack.us/img193/2450/picture1zh.png

Используя стиль TableView по умолчанию я могу заставить повторяющиеся пустые строки заполнять представление (например, почтовое приложение имеет это). Я пытался установить backgroundColor шаблон на UITableView к тому же фону мозаики:

UIColor *color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"score-cell-bg.png"]];
moneyTableView.backgroundColor = color;

... но мозаика запускается немного перед вершиной TableView, таким образом, мозаика прочь, после того как фактическая ячейка сделана, отобразившись:

сопроводительный текст http://img707.imageshack.us/img707/8445/picture2jyo.png

Как я могу настроить свой tableview, но все еще сохранить пустые строки, если существует меньше строк, чем заливка страница?

12
задан typeoneerror 10 April 2010 в 17:30
поделиться

2 ответа

Вы случайно удалили цвет фона и стиль разделителя? Если да, то, возможно, поэтому лишних ячеек нет. Я бы подумал, что UITableView по умолчанию на самом деле не добавляет больше ячеек, у него просто есть стиль разделителя для создания этой иллюзии, и поскольку он имеет белый фон, они выглядят как ячейки.

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}

Если это не так, вы всегда можете попробовать добавить дополнительные ячейки, которые нельзя выбрать:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return ([source count] <= 7) ? 7 : [source count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Set all labels to be blank
    if([source count] <= 7 && indexPath.row > [source count]) {
        cell.textLabel.text = @"";
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    } else {
        cell.textLabel.text = [source objectAtIndex:indexPath.row];
        cell.selectionStyle = UITableViewCellSelectionStyleBlue;
    }

  return cell;
}
9
ответ дан 2 December 2019 в 22:37
поделиться

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

Кроме того, вы можете просто вернуть высоту ячейки, которая будет охватывать плитку в tableview: cellHeightForRow: . Это прекрасно работает с ячейками по умолчанию.

0
ответ дан 2 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: