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

发布于 2024-11-24 02:46:50 字数 681 浏览 3 评论 0原文

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

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

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

self.view.frame = newFrame;

但它没有有道理,页脚的高度仍然是我在 Interface Builder 中设置的高度,是否缺少任何内容或有任何其他方法可以做到这一点?

谢谢!

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

My table view's footer is a view that shows some tweets from a user, so I do not know its height until I got the tweets, I created a FooterViewController that has a method refreshTweets, I add it in viewDidLoad:

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

in refreshTweets method, I read tweets and calculate the total height, and reset view(the footer)'s height:

self.view.frame = newFrame;

but it does not make sense, the footer's height is still the height I set in Interface Builder, is there anything missing or any alternative way of doing this?

Thanks!

edit:
I can change the view's size to be small enough in interface builder, and it will be enlarged after calculating tweets' height and setting view.frame, but the table view still thinks its footer has previous height, that is, the extra space is outside of the tableview and I can only see it if I drag the table up.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

他不在意 2024-12-01 02:46:50
myTable.tableFooterView = myFooterView;

将页脚视图重新分配给表格。该表将识别出它有一个新的页脚,并重新执行所需的布局以获得正确的页脚大小。

myTable.tableFooterView = myFooterView;

Re-assign your footer view to the table. The table will recognize it has a new footer and re-do whatever layout needs to occur for the proper size of the footer.

半步萧音过轻尘 2024-12-01 02:46:50

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

在 Swift 中:-

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
}

In order to change the frame of footer view here is the simple tweak:-

In Swift:-

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
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文