我的表格视图的页脚是一个显示来自用户的一些推文的视图,所以在得到推文之前我不知道它的高度,我创建了一个FooterViewController
,它有一个方法refreshTweets
,我将其添加到viewDidLoad
:
FooterViewController *controller = [[FooterViewController alloc] initWithNibName...];
[[self tableView] setFooterView:[controller view]];
[controller refreshTweets];
在refreshTweets
方法中,我阅读推文并计算总高度,并重置视图(页脚)的高度:
self.view.frame = newFrame;
但它没有意义,页脚的高度仍然是我在Interface Builder中设置的高度,是否有任何遗漏或任何替代方法?
谢谢!
编辑: 我可以在界面构建器中将视图的大小更改为足够小,并且在计算推文的高度和设置view.frame之后它将被放大,但是表视图仍然认为其页脚具有先前的高度,即,额外的空间在外部如果我把桌子拖了起来,我只能看到它。
答案 0 :(得分:43)
myTable.tableFooterView = myFooterView;
将页脚视图重新指定给表格。该表将识别它有一个新的页脚,并重新做任何布局需要发生适当的页脚大小。
答案 1 :(得分:-1)
为了更改页脚框架的视图,这里是一个简单的调整: -
在斯威夫特: -
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.5
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView()
let footerChildView = UIView(frame: CGRect(x: 60, y: 0, width: tableView.frame.width - 60, height: 0.5))
footerChildView.backgroundColor = UIColor.darkGray
footerView.addSubview(footerChildView)
return footerView
}