5

UITableView在我的应用程序中正确实施了一个。现在我想稍微改变一下 UI,所以我想要每个单元格之间有一个空格,就像我在这张图中显示的那样:

在此处输入图像描述

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

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

4

3 回答 3

8

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

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

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

if (indexPath.row % 2 == 0) {
    cell.userInteractionEnabled = YES;
}
else {  
    cell.userInteractionEnabled = NO;
}

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

if (indexPath.row % 2 == 0) {
    cell.selectionStyle = UITableViewCellSelectionStyleBlue;
}
else {  
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
于 2012-08-08T19:53:20.543 回答
0

虽然 Eyal 的回答非常合理,但另一种简单的方法是使您的单元格比您需要的更大,并在单元格底部放置一个所需分隔符高度的视图,该单元格具有您想要的分隔符的背景颜色成为。

例如,如果您想要高度为 40 且分隔符为 3 的单元格,则构建一个高度为 43 的单元格并在 y = 40 处放置一个高度为 3 的视图,并根据需要设置其背景颜色。

于 2014-03-17T17:11:07.330 回答
-1

1.您可以使用分组的表格视图和部分。

2.每个部分有单行和

3.tableview背景颜色为清晰颜色。

于 2012-08-08T12:38:27.653 回答