如何重叠UITableViewCells?

时间:2012-10-24 09:51:44

标签: ios objective-c uitableview overlap

enter image description here

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

我们有什么方法可以重叠细胞吗?

3 个答案:

答案 0 :(得分:13)

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

1)将您的子视图添加到cell.contentView,确保子视图高度大于tableView的rowHeight

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];
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

enter image description here

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

enter image description here

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