gpt4 book ai didi

ios - NSLayoutConstraints 在第一个 tableview 呈现后更新

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:13 24 4
gpt4 key购买 nike

  1. 我从 xib 加载自定义 UITableViewCell
  2. 我以编程方式更新 NSLayoutConstraintcellForRowAtIndexPath

NSLayoutConstraint 的自动布局和手动更改工作正常 - 设备尺寸、方向等。

但是:在单元格的第一个演示文稿中,未显示程序更改。
按预期更改 View 和返回更新。

我认为我需要将 [self setNeedsUpdateConstraints] 放在某处。
我尝试了各种地方(viewDidAppear, didEndDisplayingCell ...)

这应该去哪里?

会不会是新电池/重复使用电池的问题?

最佳答案

因此,总结一下 - 这就是我每次都获得布局良好的 View 所做的:

UIView 现在自己负责,不用在 tableviewController 中乱搞。

我不需要在任何有意义的地方调用 (void)updateConstraints,因为我在 IB 中设置了约束并且只是添加了一个能够更改常量的属性。实际的约束没有受到影响,只需要布局!

  1. 将所有布局代码移至我的 UITableViewCell 子类,将其命名为 (void)updateMedian(仅两行代码)。
  2. 制作了一个属性,用于将重新计算标签位置所需的信息(基本 float )传递到子类中。
  3. 在 UITableViewCell 子类的 (void)layoutSubviews 中使用 (void)updateMedian 来更新我的坐标。
  4. 还在我的子类的 (void)prepareForReuse 中添加了对 (void)updateMedian 和 [self layoutIfNeeded] 的调用。
  5. 添加了 [cell setNeedsLayout]; [cell layoutIfNeeded] 在我的 tableviewController 的 cellForRowAtIndexPath 中。

我想,最后一步有点多余。但除此之外,仍有一些单元格显示不正确。

关于ios - NSLayoutConstraints 在第一个 tableview 呈现后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820672/

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