我在界面构建器中配置了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:方法中分配。
答案 0 :(得分:0)
到目前为止,这是一个丑陋,黑客的解决方案。
footerView和UITableView的底部对齐,我将该约束作为属性(bottomToBottomConstraint)连接到.m文件。然后我将myTableView.contentSize.height设置为bottomToBottomConstraint.constant,并且视图出现在我想要的位置。
self.bottomToBottomConstraint.constant = self.myTableView.contentSize.height;
虽然它只是一行代码,但我更愿意理解问题并实施真正的解决方案......等待您的知识!