UITableView:更改页脚视图';s大小不以编程方式显示';行不通

UITableView:更改页脚视图';s大小不以编程方式显示';行不通,uitableview,uiview,frame,footer,tweets,Uitableview,Uiview,Frame,Footer,Tweets,我的表视图的页脚是一个显示用户一些推文的视图,因此我在收到推文之前不知道它的高度,我创建了一个FooterViewController,它有一个方法refreshTweets,我将它添加到viewDidLoad: FooterViewController *controller = [[FooterViewController alloc] initWithNibName...]; [[self tableView] setFooterView:[controller view]]; [cont

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

FooterViewController *controller = [[FooterViewController alloc] initWithNibName...];
[[self tableView] setFooterView:[controller view]];
[controller refreshTweets];
刷新tweets
方法中,我阅读tweets并计算总高度,然后重置视图(页脚)的高度:

self.view.frame = newFrame;
但这没有意义,页脚的高度仍然是我在Interface Builder中设置的高度,是否缺少任何东西或有其他方法可以做到这一点

谢谢

编辑: 我可以在interface builder中将视图的大小更改为足够小,在计算tweets的高度并设置view.frame后,视图将被放大,但表视图仍然认为其页脚具有以前的高度,即,额外的空间在表视图之外,我只有向上拖动表才能看到它

myTable.tableFooterView = myFooterView;

将页脚视图重新指定给表。该表将识别出它有一个新的页脚,并根据页脚的适当大小重新进行布局

为了更改页脚视图的框架,这里有一个简单的调整:-

迅速:-

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
}

一个有用的(更详细的)链接可能是关于调整tableHeaderView大小的链接;同样适用于tableFooterView:这在iOS11中不起作用,但这里有一个类似的答案:这个问题是关于tableview的footerView,而不是tableview的特定部分,这是不同的。