【问题标题】:iMessage Extension - need to know the height of the iMessages header [duplicate]iMessage 扩展 - 需要知道 iMessage 标头的高度 [重复]
【发布时间】:2017-09-21 16:34:54
【问题描述】:

我正在开发“猫”iMessage 扩展程序。 (好吧,我不是,但客户要求我清理我的 SO 问题。)这是我在 tableView 中看到的:

如您所见,我的表格的部分标题在我的搜索栏下方有很大的空白。我可以用这段代码轻松解决这个问题。

    self.catsTableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0)

嗯,几乎很容易,这 20 让我非常担心。你看,这 20 在不同的设备上是不同的。这是不可接受的,我无法对设备表进行硬编码。

我的第一个猜测是尝试调整顶部指南,但始终为零,或者是一个约束,但我找不到可以调整的!

问:为什么会有差距?

A: 有间隙是因为这是一个 iMessage 扩展,间隙的大小正好是上面“Kate”标头的大小。您可以在这两个屏幕截图中看到这一点。首先,显示 168px 间隙的 iPhone7 正好等于 168px 标题。:

接下来在 iPhone SE 中,显示 126px 的间隙,与 126px 的标头完全匹配:

有什么好的、独立于设备的方法来解决这个问题?

【问题讨论】:

  • 一开始为什么会有差距?你的情节提要中有一个空的表头吗?故事板中的标题高度设置为 20?
  • @MikeTaverne - 我找到了为什么会有差距! iMessageExtension 将其放在那里。
  • 好发现!我认为这指向了问题所在。查看useyourloaf.com/blog/extra-space-when-embedding-table-views
  • 我看到了那些东西,非常有希望。我在另一个 SO question 上找到了解决方案。答案在下面...

标签: ios uitableview imessage-extension


【解决方案1】:

我在this question 找到了答案。这是对我有用的代码。

override func viewDidLayoutSubviews() {
    self.recentQuotesTableView.contentInset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0)
}

它适用于所有设备,包括带有拆分视图的 iPad。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 2017-02-24
    • 1970-01-01
    • 2017-06-26
    • 2019-08-06
    相关资源
    最近更新 更多