UITableView分隔细胞?

Sim*_*iwi 4 cells uitableview ios

UITableView在我的应用程序中正确实现了.现在我想稍微更改UI,所以我希望每个单元格之间有一个空格,就像我在这张图中所示:

在此输入图像描述

有可能吗?如果是这样,怎么样?

同样在每个单元格之间,我可以使其透明,以便它没有任何白色区域阻挡视图的背景图像吗?

Eya*_*yal 7

我至少可以想到两种方法:

1)创建一个空的单元格,它将是透明的,无论您喜欢什么高度,然后将此单元格用于索引为1,3,5,7,9,11的行...

之前我使用这种方法创建自定义分隔符单元格,您可以完全相同,查看单元格之间的空间,如大透明分隔符单元格.我在这个问题中发布了代码看看.

2)第二个选项,只是在底部使用透明部分的图像,这样细胞看起来就像它们之间有空格.

要为不同类型的单元格返回不同的高度,请执行以下操作:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row % 2 == 0) {
        // this is a regular cell
        return REGULAR_CELL_HEIGHT;
    }
    else {
        // this is a "space" cell
        return SPACE_CELL_HEIGHT;
    }
}  
Run Code Online (Sandbox Code Playgroud)

您可能希望禁用与"space"单元格的任何选择和用户交互,因此您需要做的就是将其添加到cellForRowAtIndexPath方法中:

if (indexPath.row % 2 == 0) {
    cell.userInteractionEnabled = YES;
}
else {  
    cell.userInteractionEnabled = NO;
}
Run Code Online (Sandbox Code Playgroud)

这将阻止任何用户与单元格的交互,如果您只想在用户点击单元格时不显示选择蓝色但仍希望didSelectRowAtIndexPath调用委托方法,请将上述代码替换为:

if (indexPath.row % 2 == 0) {
    cell.selectionStyle = UITableViewCellSelectionStyleBlue;
}
else {  
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
Run Code Online (Sandbox Code Playgroud)