Как перекрывать UITableViewCells?

Если вы посмотрите на скриншот, то заметите, что каждый UITableViewCell перекрывается на 20% от верхней части до верхней ячейки таблицы.

Есть ли способ, которым мы можем перекрывать клетки?

3 ответа

Решение

Я никогда не пробовал, но такая логика будет работать. Помните, что вы не получите никакого прикосновения в перекрывающейся области.

1) Добавьте свое подпредставление к cell.contentView, убедитесь, что высота подпредставления больше, чем rowHeight вашего tableView.

float overlapHeight  = 10.0;

subView.frame = CGRectMake(0.0, -10.0, 
                  your_subview_width, rowHeight + overlapHeight);

2) Добавьте этот код, чтобы ваша ячейка не обрезала содержимое за пределами своего фрейма.

cell.clipsToBounds = NO;
cell.contentView.clipsToBounds = NO;

3) Теперь ячейки будут перекрываться, но вокруг границ ячейки будет метка клипа. Чтобы избежать этого, реализуем делегатскую функцию willDisplayCell

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor clearColor];
}

Эффект перекрытия может быть достигнут визуально, составив ячейку из двух частей: узкой сверху и широкой снизу. Нижняя часть проста: это серый прямоугольник с компонентом текста / изображения внутри. Хитрость в части сверху.

Высота верхней части равна высоте всей цветной вкладки. Ваша программа может поместить туда одно из двух изображений: либо вкладку поверх узкой серой полосы, представляющей нижнюю часть предыдущей ячейки, либо вкладку поверх коричневого фона. Внутри вашего tableView:cellForRowAtIndexPath: проверить row, Если это ноль, выберите изображение с коричневым фоном; в противном случае выберите изображение с серой полосой на заднем плане сверху.

Не нужно перекрывать клетки. Ваша верхняя ячейка должна выглядеть так:

введите описание изображения здесь

и все остальные ячейки должны выглядеть так:

введите описание изображения здесь

Ваш tableFooterView должна быть просто серая полоса ("низ" ячейки)

Другие вопросы по тегам