在创建时向UITableViewCell添加偏移量?

时间:2016-11-20 20:13:25

标签: ios swift uitableview layout

我正努力以这种方式加载cellForRowAtIndexPath中的单元格,以便我只能为一个单元格提供自定义偏移量 - 在我的情况下仅限于单元格1,第1部分.I' d喜欢给单元格提供一个自定义偏移量,因为在项目的其他部分使用相同的单元格(xib),它延伸到表格的边缘而没有任何偏移。我的所有单元格都设计为* .xib文件。如果有需要,我愿意用awakeFromNib()或其他方法设置内容。

enter image description here

有没有办法在创建时或加载单元格时设置单元格偏移,插入,边距,填充(不确定正确的措辞)?

我试图以这种方式设置边距,但它不起作用:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if (indexPath.section == 0) && (indexPath.row) == 0 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MyCell
        cell.layoutMargins = UIEdgeInsetsMake(10, 10, 10, 10)
        return cell
    }
} else {
    // Load other cells
}

1 个答案:

答案 0 :(得分:1)

我认为您已与cellForRowAtIndexPath实施结束了。尝试将边距应用于单元格的contentView(单元格内容的超级视图,以及单元格的子视图)。您可能还必须将单元格的背景颜色设置为清除(contentView仍为白色)。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if (indexPath.section == 0) && (indexPath.row) == 0 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MyCell
        cell.contentView.layoutMargins = UIEdgeInsetsMake(10, 10, 10, 10)
        return cell
    }
} else {
    // Load other cells
}