【问题标题】:Indent on all Auto Layout constraints in UITableViewCell缩进 UITableViewCell 中的所有自动布局约束
【发布时间】:2014-10-14 02:57:40
【问题描述】:

我有一个自定义的UITableViewCell,我在 Interface Builder 中进行了布局并添加了必要的约束。

我的单元格的内容视图总是填满整个单元格,但我注意到内容视图的所有子视图都插入了 8 个点。约束的常量均为 0。我已将视图的 layoutMargins 设置为 UIEdgeInsetsZero。 iOS 8 中是否有一些我忘记的默认行为?

提前致谢。

【问题讨论】:

  • 在单元格中绑定约束时。它将添加相对于边距的约束。你可以删除它。按照步骤>点击该约束>右侧导航器>点击(第一项或第二项)>您可以看到“相对于边距”选项已打开。只需取消选中该选项,您就会得到正确的位置。
  • 谢谢,这成功了。如果您发布作为答案,我可以接受。有什么办法可以让这成为整个视图的默认行为?
  • 我不这么认为可能是因为这仅在 ios8 中。如果您的目标是 7&8,那么您将收到“相对于 8.0 之前的 iOS 版本的布局边距的布局属性”的警告。如果你的目标只有 8,那么你不会收到警告。

标签: ios uitableview autolayout


【解决方案1】:

按照步骤进行

点击该约束>右侧导航器>点击(第一项或第二项)>您可以看到“相对于边距”选项已打开。只需取消选中该选项,您就会得到正确的位置。

【讨论】:

  • 我刚刚注意到在 IB 中添加约束时,您可以取消选中“约束到边距”框
  • @Ricky 是的,当使用底部“pin”选项添加约束时。但是如果您使用 TopMenu > Editor option > pin 添加约束。那么您将无法获得该选项:)
  • 你知道是否有办法覆盖 8 的值吗?
  • 原来你需要设置单元格内容视图的layoutMargins属性。
  • 例如当单元格出列时,可以设置 layoutMargins 属性。 cell.layoutMargins = UIEdgeInsetsMake(8, self.tableView.layoutMargins.left, 8, self.tableView.layoutMargins.right); cell.contentView.layoutMargins = cell.layoutMargins;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
相关资源
最近更新 更多