iOS 8.3 – UITableView单元格不alignment,向左缩进

我偶然发现了一个奇怪的行为,其中添加到UITableView单元格有时向左缩进。 这只发生在iOS 8.3上,而且我无法find一个清晰的模式。

任何人遇到同样的事情?

我的tableViewCells在iOS 8.3上运行时看到了增加的左右页边距,这在以前的版本中没有看到。

设置:

  self.contentView.preservesSuperviewLayoutMargins = NO; 

解决了我的问题,并保持我的利润在所有版本上保持一致,但请注意,这只适用于iOS 8+。

所以在这里,例如,你可能会这样做:

 - (void)awakeFromNib { if ([self.contentView respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) { self.contentView.preservesSuperviewLayoutMargins = NO; } } 

好 – 这很奇怪

似乎有时UITableViewCellContentViewcontentView不与UITableViewCellContentView本身alignment。 这发生在UITableView本身是比屏幕更宽的布局的一部分的情况下(如在水平寻呼机的情况下)。

幸运的是,解决scheme很简单:添加一个约束来将contentView与其父alignment。 这只能以编程方式完成,因为您无法在布局编辑器中编辑contentView的约束条件。

 - (void)awakeFromNib { // Initialization code // iOS 8.3 bug, where contentView's x position isnt aligned with self's x position... // So we add a constraint to do the obvious... [self addConstraint:[NSLayoutConstraint constraintWithItem:self.contentView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeading multiplier:1.0f constant:0.0f]]; } 

这只发生在iOS 8.3上,但修复程序似乎是安全的,向后兼容到早期版本。

一如既往 – 请用您自己的经验评论。

看起来像是因为layoutMargins属性。 我没有选中我的约束第二项“相对于保证金”,一切都很好。 这里是文章 。

我已经看到了我正在处理的一个应用程序的这个问题的变化。 我们看到一些表格视图单元格具有不正确的开头/结尾alignment。

它没有连接到iOS 8.3,只有在使用Xcode 6.3构build时才会发生。 我可以采取相同的项目,并build立在Xcode 6.2上,它不会发生。

经过一番调查,事实certificate,这只发生在xibs中的表格视图单元格。

解决方法是删除前导/尾随约束边缘,并将它们直接设置为超视图(即单元格内容视图)。

这为我固定。 我刚刚停止使用UITableViewCelltextLabeltextLabel属性重新连接到我的网点。