【发布时间】:2014-09-23 04:18:48
【问题描述】:
我的应用中有几个自定义的 UITableViewCell,主要由 nib 定义。移至 iOS 8 和 Xcode 6 时,左右边距不正确。这些单元格通常散布在带有默认单元格的表格视图中。
我做了一个示例项目,这是我正在谈论的保证金问题:
我能找到的唯一与此相关的是新属性layoutMargins。对于 UITableViewCells,它的值似乎会根据应用运行的设备而变化:
iPhone 6 and below - layoutMargin: {8, 16, 8, 16}
iPhone 6 Plus - layoutMargin: {8, 20, 8, 20}
这似乎与我在标准单元格上看到的边距一致。但是,我的自定义单元格的内容在单元格contentView 内,它具有{8, 8, 8, 8} 的标准 UIView layoutMargin。这意味着绑定到容器边距的任何自动布局约束都添加了不正确的间距。
我发现解决此问题的唯一方法是在 cellForRowAtIndexPath: 中添加以下内容
cell.contentView.layoutMargins = cell.layoutMargins;
这似乎不是一个很好的解决方案(特别是因为我需要将它包装在 iOS8 的检查中以保持兼容性)。
有人有什么想法吗?我觉得我一定是错过了什么。
【问题讨论】:
标签: objective-c uitableview ios8