gpt4 book ai didi

ios - 在运行时更改表格单元格中的自动布局约束

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:19:35 25 4
gpt4 key购买 nike

我已经将 UITableViewCell 子类化,它有一堆在 IB 中创建的按钮和标签,它们都有 socket 。我想要做的是,根据单元格的内容,UIButton 需要稍微向上移动,或者保持在原位。我为需要更改的约束创建了一个导出,以便我可以在代码中更改它。

cellForRowAtIndexPath 中,我有以下内容:

[cell.usernameButton.superview removeConstraint:cell.usernameTopConstraint];
int topDistance;
// code to conditionally change topDistance for constraint is omitted here, results in either 5 or 15

cell.usernameTopConstraint = [NSLayoutConstraint constraintWithItem:cell.usernameButton
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:cell.usernameButton.superview
attribute:NSLayoutAttributeTop
multiplier:1
constant:topDistance];

[cell.usernameButton.superview addConstraint:cell.usernameTopConstraint];
[cell.usernameButton.superview layoutIfNeeded];

问题是,不能删除现有约束,因为我收到错误:“无法同时满足约束”- 它向我显示的两个是上面可以应用的两个。

奇怪的是,当我记录 cell.usernameButton.superview 时,它对于每个单元格都是空的,直到具有非默认 topDistance 的单元格抛出约束错误。然后为后记中绘制的每个单元格设置。

为什么约束没有被移除?我尝试了多种不同的方式来引用按钮的 super View ,但似乎都不起作用。

最佳答案

为什么不更改常量而不是删除并重新添加约束?

cell.usernameConstraint.constant = topDistance;

关于ios - 在运行时更改表格单元格中的自动布局约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765363/

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