22

我的表格视图的页脚是一个显示来自用户的一些推文的视图,所以在我收到推文之前我不知道它的高度,我创建了一个FooterViewController有方法的refreshTweets,我将它添加到viewDidLoad

FooterViewController *controller = [[FooterViewController alloc] initWithNibName...];
[[self tableView] setFooterView:[controller view]];
[controller refreshTweets];

refreshTweets方法中,我阅读推文并计算总高度,并重置视图(页脚)的高度:

self.view.frame = newFrame;

但这没有意义,页脚的高度仍然是我在 Interface Builder 中设置的高度,是否有任何遗漏或任何替代方法?

谢谢!

编辑:我可以在界面生成器中将视图的大小更改为足够小,并且在计算推文的高度和设置view.frame后会放大,但是表格视图仍然认为它的页脚具有以前的高度,即额外的空间位于表格视图之外,只有向上拖动表格才能看到它。

4

2 回答 2

51
myTable.tableFooterView = myFooterView;

将您的页脚视图重新分配给表格。表格将识别出它有一个新的页脚,并重新做任何需要发生的布局以使页脚的大小合适。

于 2011-08-30T17:52:09.257 回答
0

为了改变页脚视图的框架,这里是简单的调整: -

在斯威夫特:-

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
}
于 2017-02-09T19:35:56.567 回答