UITableView的tableFooterView以非常奇怪的方式显示

时间:2016-06-01 18:19:47

标签: ios objective-c uitableview

我在界面构建器中配置了UIViewController。它包含一个UITableView,一个UIView作为页眉,另一个UIView作为页脚。

(请注意,这两个充当页眉和页脚的UIViews不是章节页眉和页脚。)

标题工作得很好。在界面构建器中,UITableView与superview对齐(top:0,bottom:0,leading:0,trailing:0)。然后我将headerView(UIView)对齐到UITableView的顶部,使其与UITableView的宽度和水平居中相等。 headerView的高度根据其子视图进行配置。

在.m文件中,我设置了

    self.myTableView.tableHeaderView = self.headerView;

一切都很完美。果然,headerView固定在UITableView的顶部,当你向下滚动headerView滚动时,它会从屏幕上消失。优异。

我以为我会对页脚做同样的事情。实际上,我做了完全相同的事情,除了我将footerView的底部与UITableView对齐(是的,两者共享相等的宽度和水平居中)。我将footerView高度设置为某个固定值。

在.m文件中,我添加了以下代码:

   self.myTableView.tableFooterView = self.footerView;

这就是它变得奇怪的地方......当我滚动到底部时,UIView footerView有空间,完全根据我在界面构建器中指定的footerView的高度。

当我向上滚动时,将手指放在滚动上去过UITableView的顶部,footerView的子视图就在那里! WTF!

有人理解这个吗?

所有内容都在Interface Builder中配置,tableHeaderView和tableFooterView属性在viewDidLoad:方法中分配。

1 个答案:

答案 0 :(得分:0)

到目前为止,这是一个丑陋,黑客的解决方案。

footerView和UITableView的底部对齐,我将该约束作为属性(bottomToBottomConstraint)连接到.m文件。然后我将myTableView.contentSize.height设置为bottomToBottomConstraint.constant,并且视图出现在我想要的位置。

    self.bottomToBottomConstraint.constant = self.myTableView.contentSize.height;

虽然它只是一行代码,但我更愿意理解问题并实施真正的解决方案......等待您的知识!