ios - UITableView 分隔单元格?

标签 ios uitableview cells

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

enter image description here

这可能吗?如果是,怎么办?

另外,在每个单元格之间,我能否将其设为透明,这样就不会有任何白色区域阻挡 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/

相关文章:

ios - 如何从另一个 ViewController 修改 UITableView 的单元格

wolfram-mathematica - 粘贴 Mathematica 代码,以便将其分解为单独的输入单元格

ios - iOS14 中的 SwiftUI 键盘避免问题和 IgnoresSafeArea 修饰符问题

iPhone 添加(+)按钮操作?

ios - 仅向特定行的单元格添加标签

ios - 如何在 UiTableViewCell 中动态更改 ImageView?

ios - 如何使用 Collection View 单元格的图像选择器

ios - 在不同的表中使用单元格设计

ios - 显示 "Enter Password"用于 Touch ID 身份验证

ios - 回到IOS上未访问的页面