UITableView左右填充问题

6

我有一个表视图。其中每个分区只有一行。我使用这些部分来控制标题高度与行之间的空间。我想要添加填充到 UITableView,以便可以从设备边缘空出 cells/sections 的空间。间距需要具有 UITableView 背景颜色。

2个回答

10

子类化 UITableviewCell 并覆盖其 setFrame 方法,如下所示:

```objc - (void)setFrame:(CGRect)frame { frame.origin.x += 10; frame.size.width -= 2 * 10; [super setFrame:frame]; } ```
- (void)setFrame:(CGRect)frame {
    frame.origin.x += inset;
    frame.size.width -= 2 * inset;
    [super setFrame:frame];
}

因此,它将从左右两侧设置两个像素的填充。您可以根据需要进行更改。

您可以使用contentInset,但它仅适用于垂直间距(顶部和底部)。对于水平间距,请像上面提到的那样设置单元格的setFrame

您可以将此答案此答案作为参考。

希望这会有所帮助 :)


为什么contentInset在水平间距上不起作用? - ShadeToD

10

提到Lion时,他的方法效果很好,但是它是使用ObjectiveC编写的。这里是Swift 4.2的方法:


override var frame: CGRect {
        get {
            return super.frame
        }
        set (newFrame) {
            var frame = newFrame
            frame.origin.x += 10
            frame.size.width -= 2 * 10
            super.frame = frame
        }
    }

当单元格处于编辑模式时,它会滑回到错误的位置。有什么解决办法吗? - frank61003

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接