以编程方式为 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 的布局
获取 json 数据后以编程方式设置 UITableViewCell 高度
无法在 UITableViewCell 中以编程方式创建的 UIButton 上设置图像
iOS 在 UITableViewCell 中以编程方式设置 UIImageView 约束在滚动 tableview 时变得混乱