XCode 6.3 给tableviewcell添加边距
XCode 6.3 adding margins to tableviewcell
XCode 6.3 / Swift 1.2 是否为 UITableViewCell 的 contentView 添加了额外的边距?在更新之前,我有一个自定义的 UIView,它在我的单元格中一直延伸到整个屏幕。示例:
现在,单元格中的所有内容似乎都有额外的边距,我不知道它们是从哪里来的。
请注意,这些视图的宽度在代码中没有任何改变,左右约束如下:
另请注意,我使用的是 tableView.separatorStyle = .None
。我添加这个事实是因为出于某种原因,在我的一个具有默认分隔符的 tableView
中,它似乎没有添加这些额外的边距。
有谁知道他们是否在 XCode 6.3 中做了一些奇怪的更改?此行为是在更新后直接发生的。
编辑:
仔细查看大小检查器的屏幕截图以了解前导约束:
看看"Relative to margin"是怎么检查的?那是你的问题。如果边距发生变化,您的左边缘也会发生变化。 取消选中该菜单项,然后将常量更改为零。对尾随约束也这样做,你的问题就会结束。
现在让我们来解决更深层次的问题:发生了什么变化?你是绝对正确的,有些事情确实发生了。我相信他们修复了一个错误,而你被修复了。日志显示单元格的 preservesSuperviewLayoutMargins
是 true
,table 的边距是 0,16,0,16
。即使在 iOS 8.2 上也是如此,因此 iOS 8.2 上的有效边距应该 是 16。但它们是 8,就好像 preservesSuperviewLayoutMargins
是 false
。但是在 iOS 8.3 中,这个设置被正确地遵守了——结果就是你观察到的。
因此,解决问题的另一种方法是保持约束不变,但将每个单元格的 preservesSuperviewLayoutMargins
设置为 false
在 cellForRowAtIndexPath:
。这同样适用于使两个系统中的结果相同。
编辑 好消息:看起来这个变化在 iOS 9 中被恢复了。因此,如果没有变化,你的单元格在 [=40= 中看起来是一样的] 9 就像他们在 iOS 8.2 和之前所做的那样。
XCode 6.3 / Swift 1.2 是否为 UITableViewCell 的 contentView 添加了额外的边距?在更新之前,我有一个自定义的 UIView,它在我的单元格中一直延伸到整个屏幕。示例:
现在,单元格中的所有内容似乎都有额外的边距,我不知道它们是从哪里来的。
请注意,这些视图的宽度在代码中没有任何改变,左右约束如下:
另请注意,我使用的是 tableView.separatorStyle = .None
。我添加这个事实是因为出于某种原因,在我的一个具有默认分隔符的 tableView
中,它似乎没有添加这些额外的边距。
有谁知道他们是否在 XCode 6.3 中做了一些奇怪的更改?此行为是在更新后直接发生的。
编辑:
仔细查看大小检查器的屏幕截图以了解前导约束:
看看"Relative to margin"是怎么检查的?那是你的问题。如果边距发生变化,您的左边缘也会发生变化。 取消选中该菜单项,然后将常量更改为零。对尾随约束也这样做,你的问题就会结束。
现在让我们来解决更深层次的问题:发生了什么变化?你是绝对正确的,有些事情确实发生了。我相信他们修复了一个错误,而你被修复了。日志显示单元格的 preservesSuperviewLayoutMargins
是 true
,table 的边距是 0,16,0,16
。即使在 iOS 8.2 上也是如此,因此 iOS 8.2 上的有效边距应该 是 16。但它们是 8,就好像 preservesSuperviewLayoutMargins
是 false
。但是在 iOS 8.3 中,这个设置被正确地遵守了——结果就是你观察到的。
因此,解决问题的另一种方法是保持约束不变,但将每个单元格的 preservesSuperviewLayoutMargins
设置为 false
在 cellForRowAtIndexPath:
。这同样适用于使两个系统中的结果相同。
编辑 好消息:看起来这个变化在 iOS 9 中被恢复了。因此,如果没有变化,你的单元格在 [=40= 中看起来是一样的] 9 就像他们在 iOS 8.2 和之前所做的那样。