gpt4 book ai didi

ios - 在运行时更改 AutoLayout 约束

转载 作者:行者123 更新时间:2023-12-01 18:49:51 24 4
gpt4 key购买 nike

如何在运行时更改 AutoLayout 约束。

我需要在运行时更改 View 坐标,所以我做了以下操作:

 if ([OfferText length] != 0) {
cell.topContentView.translatesAutoresizingMaskIntoConstraints = YES;
CGRect newFrame = CGRectMake( 71, 4, [Util window_width]-71,50);
cell.topContentView.frame = newFrame;
}

这样做时,我收到以下警告。是否可以在运行时更改自动布局约束。
(1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
"<NSLayoutConstraint:0x7fca729606a0 UIView:0x7fca7296c6e0.top == UITableViewCellContentView:0x7fca729712b0.topMargin + 2>",
"<NSAutoresizingMaskLayoutConstraint:0x7fca7286f620 h=--& v=--& UIView:0x7fca7296c6e0.midY == + 29>",
"<NSAutoresizingMaskLayoutConstraint:0x7fca7286f670 h=--& v=--& V:[UIView:0x7fca7296c6e0(50)]>",
"<NSAutoresizingMaskLayoutConstraint:0x7fca705c9770 h=--& v=--& 'UIView-Encapsulated-Layout-Top' V:|-(0)-[UITableViewCellContentView:0x7fca729712b0] (Names: '|':CollectionBrandCell:0x7fca72968820 )>"
)

我使用以下代码找到我的解决方案:

在.h tableviewcell 在我的情况下
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintsTopContentView;

在.m
if ([OfferText length] != 0) {
cell.constraintsTopContentView.constant=-4;
}

最佳答案

如果您要从 Storyboard 设置约束,则制作更改 View 坐标所需的约束的导出。
例如:
如果要更改某些 View XYZ 的顶部空间,请执行以下操作:

  • 选择该 View 的顶部约束并在 .h 文件中创建导出。这会
    看起来像这样。

    @property(强,非原子)NSLayoutConstraint *XYZ'stopConstraint;
  • 现在,当您需要以下内容时,更改此约束常量
    代码。

    self.XYZ'stopConstraints.constant = youValue;

  • 另外,请从您的代码中删除此行,因为根据我的观点,这不是必需的。
     cell.topContentView.translatesAutoresizingMaskIntoConstraints = YES;

    关于ios - 在运行时更改 AutoLayout 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031436/

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