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; } }
好 – 这很奇怪
似乎有时UITableViewCellContentView
的contentView
不与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中的表格视图单元格。
解决方法是删除前导/尾随约束边缘,并将它们直接设置为超视图(即单元格内容视图)。
这为我固定。 我刚刚停止使用UITableViewCell
的textLabel
和textLabel
属性重新连接到我的网点。