【问题标题】:iOS - Left and right margin for UITableViewCells in SwiftiOS - Swift 中 UITableViewCells 的左右边距
【发布时间】:2018-06-25 13:47:49
【问题描述】:

我有一个分组样式的动态表格视图和不同笔尖中的不同自定义单元格,然后我在 viewDidLoad 中注册并相应地将它们添加到表格视图中。在故事板中,我在原型单元格下添加了一个 uiview 作为我的页脚,里面有一个按钮。现在因为我的单元格有边框,所以我想有一个左右边距,但不是整个 tableView,只适用于单元格。我确实使用了这段代码:

self.tableView.contentInset = UIEdgeInsetsMake(0, 10, 0, 10);

但是这样做,我的页脚不再有屏幕的宽度。

我在网上查了一下,发现有人用这个:

import UIKit

class MyTableViewCell: UITableViewCell {

    override func layoutSubviews() {
        super.layoutSubviews()
        contentView.frame = UIEdgeInsetsInsetRect(contentView.frame, UIEdgeInsetsMake(0, 16, 0, 16))
    }
}

但这并没有做任何事情。

请注意,我的应用程序使用了 viewForHeaderinSection 和 viewForFooterInSection。请有任何建议。谢谢

【问题讨论】:

  • 你可以使用set contentInset的方法。
  • import UIKit class MyTableViewCell: UITableViewCell { override func layoutSubviews() { super.layoutSubviews() contentView.frame = UIEdgeInsetsInsetRect(contentView.frame, UIEdgeInsetsMake(0, 16, 0, 16)) } } 你不会看到应用的边距,因为在内容视图下有表格单元格的背景视图。所以它阻止了边距,因为它默认是白色的,所以它应该是透明的
  • 尝试将单元格的背景颜色设置为透明(清除颜色)
  • @ChiragKothiya 你的意思是这样的:self.tableView.contentInset = UIEdgeInsetsMake(0, 10, 0, 10)。我确实这样做了,但正如我所说,页边距也适用于页脚,我不希望这样
  • @Vinaykrishnan 我做到了,但仍然没有任何反应:(

标签: ios swift uitableview


【解决方案1】:

为了将来参考,这是我修复它的方法:

override var frame: CGRect {
    get {
        return super.frame
    }
    set {
        var frame = newValue
        frame.origin.x += 25
        frame.size.width -= 2 * 25

        super.frame = frame
    }
}

感谢https://stackoverflow.com/a/42094806

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2017-11-21
    相关资源
    最近更新 更多