UITableView:以编程方式更改页脚视图的大小不起作用

时间:2011-07-12 23:42:29

标签: uitableview uiview frame footer tweets

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

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

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

self.view.frame = newFrame;

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

谢谢!

编辑: 我可以在界面构建器中将视图的大小更改为足够小,并且在计算推文的高度和设置view.frame之后它将被放大,但是表视图仍然认为其页脚具有先前的高度,即,额外的空间在外部如果我把桌子拖了起来,我只能看到它。

2 个答案:

答案 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
}