【问题标题】:XCode 6.3 adding margins to tableviewcellXCode 6.3 向 tableviewcell 添加边距
【发布时间】:2015-06-25 01:43:02
【问题描述】:

XCode 6.3 / Swift 1.2 是否为 UITableViewCell 的 contentView 添加了额外的边距?在更新之前,我有一个自定义 UIView,它在我的单元格中一直延伸到整个屏幕。示例:

现在,单元格中的所有内容似乎都有额外的边距,我不知道它们来自哪里。

请注意,这些视图的宽度在代码中不会以任何方式改变,左右限制如下:

另请注意,我使用的是tableView.separatorStyle = .None。我添加这个事实是因为出于某种原因在我的一个具有默认分隔符的tableViews 中,它似乎没有添加这些额外的边距。

有谁知道他们是否在 XCode 6.3 中做了一些奇怪的改变?此行为是在更新后直接发生的。

编辑:

【问题讨论】:

  • 更新前我在 iOS 8 上运行这个应用,它看起来像第一个屏幕截图。
  • 我不知道我还能添加什么。我刚刚在每侧使用约束 -16 对其进行了测试,并且它在屏幕上正确扩展,但我不知道为什么我的边距会被推高(我不想在不知道原因的情况下使用创可贴修复这样的) .我打印了 contentView、view、tableView 和单元格本身的宽度,它们在 iphone 6 上都是 375,但蓝色块是 359 宽度,具有问题中给出的约束。
  • 但是你为什么首先要限制边距呢?使它们位于内容视图的实际边缘,然后边距的更改不会影响您。我意识到这并不能回答根本问题,但是假设边距为 8 并将约束设置为 -8 以进行补偿是非常疯狂的开始。
  • 这在界面生成器中可行吗?我只是将它限制在情节提要中的内容视图。我在主帖中放了一张图片来展示。

标签: ios xcode uitableview swift xcode6.3


【解决方案1】:

仔细查看大小检查器的屏幕截图,了解主要约束:

查看如何检查“相对于边距”?那是你的问题。如果边距发生变化,您的左边缘也会发生变化。 取消选中该菜单项,然后将常量更改为零。对尾随约束也这样做,你的问题就会结束。

现在让我们解决更深层次的问题:发生了什么变化?你是绝对正确的,确实发生了一些事情。我相信他们修复了一个错误,而你被修复了。日志记录显示单元格的preservesSuperviewLayoutMarginstrue,表格的边距是0,16,0,16。即使在 iOS 8.2 上也是如此,因此 iOS 8.2 上的有效边距应该是 16。但它们是 8,就好像 preservesSuperviewLayoutMarginsfalse。但是在 iOS 8.3 中,这个设置被正确地遵守了——结果你已经观察到了。

因此,另一种解决问题的方法是保持约束不变,但在cellForRowAtIndexPath: 中将每个单元格的preservesSuperviewLayoutMargins 设置为false。这同样适用于使两个系统中的结果相同。

编辑好消息:看起来这种更改在 iOS 9 中已恢复。因此,如果不进行更改,您的单元格在 iOS 9 中的外观将与在 iOS 8.2 及之前的版本中相同。

【讨论】:

  • 已编辑以解释潜在现象:您完全正确,边距确实发生了变化!非常感谢您指出这一点。
  • ..那是一些令人印象深刻的调试!必须检查我所有的表格视图单元格的约束。这解决了所有问题。谢谢。
  • 你真的被 Apple 新的基于保证金的限制所吸引。当您最初使用控制拖动形成约束时,它将是基于边距的除非您按住 Option 键 来获取非边距变体。因此,基于保证金的约束是一种选择退出技术;您可以选择退出,但大多数人不知道这样做,最终会在没有意识到的情况下使用它们。
  • 请注意,这已被 Apple 确认为一个错误,并将在 iOS 9 中修复。
  • @matt 你有关于这个错误的任何其他信息吗?我反过来遇到了这个问题:我想明确地保留边距,以便在所有设备(以及 iOS 8.0 到 9.3)上的自定义单元格和标准单元格之间获得一致的外观。在某些情况下(iPhone6+ Landscape 作为 pageSheet),separatorInset 也与 layoutMargins 不同。我目前看到的唯一可行的解​​决方案是将所有边距覆盖为固定值..
猜你喜欢
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
相关资源
最近更新 更多