gpt4 book ai didi

ios - UITableViewCell - 约束仅在重新加载后更新

转载 作者:可可西里 更新时间:2023-11-01 06:24:04 25 4
gpt4 key购买 nike

我有一个自定义的 UITableViewCell,其中有一个包含多个 subview 的 UIView。根据情况,我隐藏了其中一些 View ,并更新了约束,以便父 UIView 仍然位于我的 UITableViewCell 的中心。

我的问题是,由于单元格重用,这仅在单元格未直接显示时有效(如果单元格不是首先出现在表格中的顶部单元格之一)。在这种情况下,当我向下滚动并向上滚动时,它会再次起作用。图片将帮助我解释这一点:

这是第一次加载 UITableView 时显示的内容。第一个单元格是包含所有信息的常规单元格,第二个单元格是隐藏第一个元素的单元格。

First view

这是我向下滚动然后返回时发生的情况。

enter image description here

如您所见,这正是我想要的。约束已正确更新,但仅在单元格从可见屏幕上消失并再次出现时才更新。

[reviewsAndPriceView setNeedsUpdateConstraints];
[reviewsAndPriceView setNeedsLayout];
[reviewsAndPriceView layoutIfNeeded];
[self updateConstraints];
[self setNeedsUpdateConstraints];
[self setNeedsLayout];
[self layoutIfNeeded];

还有各种各样的变体,但都不行。实现这一目标的方法是什么?

最佳答案

我遇到了同样的问题。我通过在 cellForRowAtIndexPath 中返回单元格之前调用 cell.layoutIfNeeded() 解决了这个问题。现在,对我来说它工作正常。

关于ios - UITableViewCell - 约束仅在重新加载后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158509/

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