【问题标题】:UITableView separator has margins on both sides in iPadUITableView 分隔符在 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 swift uitableview


【解决方案1】:

这里是:

tableView.cellLayoutMarginsFollowReadableWidth = false

来自 Apple 文档:

CellLayoutMarginsFollowReadableWidth

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

什么是可读内容指南:

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

讨论

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

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

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

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

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

结论:

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

tableView.readableContentGuide.layoutFrame.width

【讨论】:

    【解决方案2】:

    在这一行保留一个断点

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      相关资源
      最近更新 更多