gpt4 book ai didi

ios - 什么时候设置 UITableView 的 contentSize?

转载 作者:IT王子 更新时间:2023-10-29 07:38:33 26 4
gpt4 key购买 nike

我在 UIScrollView 中有一个非滚动的 UITableView。我将 UITableView 的框架大小设置为其内容大小。

当我向 UITableView 添加一行时,我在 UITableView 上调用 insertRowsAtIndexPaths:withRowAnimation:。然后我调用一个方法来调整 UITableView 的框架:

- (void)resizeTableViewFrameHeight
{
// Table view does not scroll, so its frame height should be equal to its contentSize height
CGRect frame = self.tableView.frame;
frame.size = self.tableView.contentSize;
self.tableView.frame = frame;
}

看来 contentSize 目前还没有更新。如果我在上述方法中根据行数和节数手动计算帧,则该方法可以正常工作。

我的问题是,如何让 UITableView 更新它的 contentSize?我想我可以调用 reloadData 并且可能会这样做,但是当我只插入一个单元格时重新加载整个表似乎效率很低。

最佳答案

您可以通过在 UITableView 上调用 layoutIfNeeded 让 UITableView 立即计算内容的大小。这将运行所有必要的计算来布局 UITableView

要放入可变大小的容器 View 中的 UITableViewController 子类示例:

objective-C

- (CGSize)preferredContentSize
{
// Force the table view to calculate its height
[self.tableView layoutIfNeeded];
return self.tableView.contentSize;
}

swift

override var preferredContentSize: CGSize {
get {
// Force the table view to calculate its height
self.tableView.layoutIfNeeded()
return self.tableView.contentSize
}
set {}
}

关于ios - 什么时候设置 UITableView 的 contentSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com