以编程方式为 UITableViewCell 设置 LayoutMargins - iOS 7 替代方案

Posted

技术标签:

【中文标题】以编程方式为 UITableViewCell 设置 LayoutMargins - iOS 7 替代方案【英文标题】:Programatically set LayoutMargins for UITableViewCell - iOS 7 alternative 【发布时间】:2015-03-29 17:08:14 【问题描述】:

如何在 ios 7 中以编程方式设置边距(或内嵌,因为它们被称为 iOS)?

在 iOS 8 中,我使用以下方式设置边距:

cell.contentView.layoutMargins = UIEdgeInsets(
                    top: 0,
                    left: 6.5,
                    bottom: BOTTOM_MARGIN_FOR_CELLS,
                    right: 6.5)

但我希望应用保持与 iOS7 的向后兼容性。

我需要以编程方式设置边距,因为存在顶部单元格与其他单元格的边距不同的情况。

【问题讨论】:

【参考方案1】:

对于 iOS7 使用以下代码

if ([myTableView respondsToSelector:@selector(separatorInset)]) 
    [myTableView setSeparatorInset:UIEdgeInsetsZero];

对于 iOS8 使用以下代码

if ([myTableView respondsToSelector:@selector(layoutMargins)]) 
    myTableView.layoutMargins = UIEdgeInsetsZero;

注意:在您的 ViewController 中包含这两个代码以支持这两个版本

【讨论】:

PO 说顶部单元格可能有不同的边距,而您的解决方案以相同的方式影响整个表格视图及其所有单元格(没有机会以特定方式配置顶部单元格)。

以上是关于以编程方式为 UITableViewCell 设置 LayoutMargins - iOS 7 替代方案的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在 UITableViewCell 上设置约束

使用锚以编程方式设置 UITableViewCell 的布局

获取 json 数据后以编程方式设置 UITableViewCell 高度

无法在 UITableViewCell 中以编程方式创建的 UIButton 上设置图像

iOS 在 UITableViewCell 中以编程方式设置 UIImageView 约束在滚动 tableview 时变得混乱

我在自定义 UITableViewCell 中以编程方式设置布局约束时遇到问题