UITableView 分隔符在 iPad 的两边都有边距

Posted

技术标签:

【中文标题】UITableView 分隔符在 iPad 的两边都有边距【英文标题】:UITableView separator has margins on both sides in iPad 【发布时间】:2015-11-07 04:00:55 【问题描述】:

我有一个 UITableView,它的框架设置为父视图的框架大小。表格视图在 iPhone 上显示得很好。但是,在 iPad 上,它的两边都有这么厚的边距。

如果我选择单元格,则表明表格确实跨越了整个宽度。但是,分隔符似乎更小。我尝试将 layoutMargins 设置为零,但没有效果。这是我如何将它添加到我的视图:

self.optionsView = UITableView()
self.optionsView.delegate = self
self.optionsView.dataSource = self
self.optionsView.hidden = true
self.optionsView.frame.origin = CGPoint(x: view.frame.size.width + 30, y: 0)
self.optionsView.frame.size = view.frame.size
self.optionsView.layer.shadowColor = Palette.shadowColor.CGColor
self.optionsView.layer.shadowRadius = 10.0
self.optionsView.layer.shadowOpacity = 0.3
self.optionsView.clipsToBounds = false

view.addSubview(optionsView)

知道这里出了什么问题吗?

【问题讨论】:

看看这个问题:ios 8 UITableView separator inset 0 not working 查看此***.com/questions/30819689/… 希望您能从中获得帮助或***.com/questions/30168168/… 此 感谢您的回复。我尝试了所有的解决方案(preserveSuperviewMargins,所有形式的边距,还添加了NSLayoutConstraints,但是两边的边距仍然存在。 【参考方案1】:

这里是:

tableView.cellLayoutMarginsFollowReadableWidth = false

来自 Apple 文档:

CellLayoutMarginsFollowReadableWidth

一个布尔值,指示是否派生单元格边距 从可读内容指南的宽度。

什么是可读内容指南:

一个布局指南,表示一个区域内具有可读宽度的区域 查看。

讨论

本布局指南定义了一个易于阅读的区域,无需 强迫用户移动他们的头来跟踪线条。可读的 内容区域遵循以下规则:

可读的内容指南永远不会超出视图的布局 边距指南。

可读的内容指南在布局内垂直居中 边距指南。

可读内容指南的宽度等于或小于 为当前动态文本大小定义的可读宽度。

使用可读内容指南来布置单列文本。如果 您正在布局多列,您可以使用指南的宽度 确定列的最佳宽度。

结论:

Apple 决定默认情况下您将使用他们的动态文本引擎,并且在您的表格视图中仅使用 1 列。如果您不在这种情况下,您可能应该关闭此属性。如果你想知道可读宽度的值,你可以这样得到:

tableView.readableContentGuide.layoutFrame.width

【讨论】:

【参考方案2】:

在这一行保留一个断点

self.optionsView.frame.size = view.frame.size

并检查view的帧大小。之后您将能够了解更多。

【讨论】:

以上是关于UITableView 分隔符在 iPad 的两边都有边距的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 UITableView 总是灰色的,没有分隔符

UITableView 的分隔符和标题奇怪的行为 iOS9 而已

iPad 不遵守 Interface Builder 的 AutoLayout 约束

iOS-iPad 旧iPad项目不能全屏运行,两边留有黑边

使用 Monodevelop C# 在 iPad 中创建 UITableView

iPad中的UITableView问题?