将 UIView 添加到 TableViewfooter 不完全可见

Posted

技术标签:

【中文标题】将 UIView 添加到 TableViewfooter 不完全可见【英文标题】:Adding UIView to TableViewfooter isn't fully visible 【发布时间】:2015-11-05 02:46:02 【问题描述】:

我有一个带有表格视图的 xib 文件,我想简单地添加一个带有按钮的 UIView,并将其作为我的表格视图页脚视图。 UIView 的高度(按钮为 50)并设置部分高度以匹配 IB 中的高度似乎无济于事,但最终似乎只显示了一半按钮和 tableview 的底部没有显示(即第二个单元格的分隔线不可见..见屏幕截图)。

想知道您是否可以帮助找出问题所在?在下面的屏幕截图中,您将看到我在代码中将视图添加到页脚视图的代码、界面构建器的屏幕截图以及设备上发生的情况的屏幕截图。在代码中,带有按钮的 UIView 有一个我正在引用的插座。这个 UIView 的高度为 50,我将部分高度设置为 50。目前我没有实现任何部分 tableview 委托方法。不知道这里需要这个。

【问题讨论】:

tableview 的高度是多少?向上滑动时它会滚动吗?设置截面高度是什么意思?部分页脚高度? tableview 的高度目前是 128 ......但显然 tableview 应该自动增长正确吗?当前行数设置为 2,但在更动态的情况下,tableview 需要像预期的那样扩展正确吗?目前我禁用了滚动视图。因为只有 2 行我只想显示那些,不需要滚动。编辑:如果我允许滚动,看起来我可以上下滚动并查看按钮的其余部分 - 但这并不能解释为什么我不能在不滚动的情况下完全看到按钮 另外-第二个单元格的分隔符仍然没有显示..也许按钮的顶部覆盖了它。 ??我目前根本没有使用任何约束。关于部分高度 - 是的,请参见第二张截图 【参考方案1】:

如果你想让tableView占据整个屏幕,你必须设置它的frame来占据整个屏幕。 tableView 的 contentSize 会自动增长,但它的 frame 不会。 tableFooterView 和它的前一行之间没有提供分隔符。您不需要设置 sectionFooter 的高度; tableFooterView 与 sectionFooterView 不同,因为它出现在表格的底部而不是部分的末尾。

【讨论】:

感谢您的反馈。在 IB 中,我将 tableview 设置为视图的高度,并且该部分似乎工作正常。但是,我正在寻找一种方法,让最后一个单元格具有底部分隔线,并在最后一个单元格和按钮之间留出一些间距。所以按钮会在我添加的分隔线下方显示 20 的间距 增加要设置为 tableFooterView 的视图的大小并添加高度为 1 的子视图并将其设置为背景颜色,无论您希望分隔符是什么颜色,并使其成为您想要的宽度将其放在顶部。 好的,谢谢。我正在使用分隔符子视图颜色属性来匹配默认值。只是对于那些好奇的人来说,ios 8 和 iOS 9 的单元格分隔符的适当颜色是 200、199、204 和 0.5 的高度,非常准确。您还必须小心,如果您在任何时候将界面生成器中的高度设置为 0.5,它都会将其更改回 1,因此您必须设置高度约束以强制其为 0.5。

以上是关于将 UIView 添加到 TableViewfooter 不完全可见的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIView 添加到 UINavigationController 堆栈

将滚动视图添加到 UIView

如何将 UIView 添加到 CALayer

将 TabBArController 添加到 UIView

无法将 pageViewController 添加到 UIView

将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift