我的应用程序中正确实现了一个 UITableView
。现在我想稍微更改一下 UI,因此我希望每个单元格之间有一个空间,就像我在这张图中显示的那样:
这可能吗?如果是,怎么办?
另外,在每个单元格之间,我能否将其设为透明,这样就不会有任何白色区域阻挡 View 的背景图像?
最佳答案
我至少可以想到两种方法:
1) 创建一个空单元格,该单元格将是透明的,高度随您喜欢,然后将此单元格用于索引 1、3、5、7、9、11 处的行...
我之前使用这种方法来创建自定义分隔单元格,您也可以完全相同,查看单元格之间的空间,就像一个大的透明分隔单元格。我在 this question 中发布了代码看一看。
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
委托(delegate)方法,将上面的代码替换为:
if (indexPath.row % 2 == 0) {
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
}
else {
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
关于ios - UITableView 分隔单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11864602/