11

在此处输入图像描述

如果您查看屏幕截图,您会注意到每个 UITableViewCell 从顶部到上部 tableview 单元格有 20% 的重叠。

有什么方法可以重叠单元格吗?

4

3 回答 3

15

我从未尝试过,但这种逻辑会起作用。请记住,您不会在重叠区域获得任何触摸。

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];
}
于 2012-10-24T10:01:31.790 回答
1

通过将单元格组成两部分,可以在视觉上实现重叠效果:顶部较窄,底部较宽。底部很简单:它是一个灰色的矩形,里面有一个文本/图像组件。诀窍在于顶部的部分。

顶部的高度等于整个彩色标签的高度。您的程序可以在其中放置两个图像中的一个 - 要么是代表前一个单元格底部的窄灰色条顶部的选项卡,要么是棕色背景顶部的选项卡。在你的tableView:cellForRowAtIndexPath:检查里面row。如果为零,则选择棕色背景的图像;否则,请选择顶部背景中带有灰色条带的图像。

于 2012-10-24T10:09:10.880 回答
0

无需重叠单元格。您的顶部单元格应如下所示:

在此处输入图像描述

所有剩余的单元格应如下所示:

在此处输入图像描述

tableFooterView应该只是一个灰色条(单元格的“底部”)

于 2012-10-24T10:15:00.243 回答