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

hzx*_*zxu 20 footer frame uitableview uiview tweets

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

FooterViewController *controller = [[FooterViewController alloc] initWithNibName...];
[[self tableView] setFooterView:[controller view]];
[controller refreshTweets];
Run Code Online (Sandbox Code Playgroud)

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

self.view.frame = newFrame;
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

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

DBD*_*DBD 46

myTable.tableFooterView = myFooterView;
Run Code Online (Sandbox Code Playgroud)

将页脚视图重新分配给表格.该表将识别它有一个新的页脚,并重新做任何布局需要发生适当的页脚大小.

  • 一个有用的(也就是更详细的)链接可能是关于调整tableHeaderView的大小; 同样适用于tableFooterView:http://davidjhinson.wordpress.com/2009/03/24/resizing-a-uitableviews-tableheaderview/ (2认同)