gpt4 book ai didi

ios - 使用自动布局应用与兄弟 View 相同的垂直位置

转载 作者:行者123 更新时间:2023-11-28 22:01:04 33 4
gpt4 key购买 nike

我正在创建自定义 UITableViewCell,但我认为这没有什么不同 - 我的问题是独立的。

我正在对现有单元格样式之一进行子类化,并添加一个 View 。父类(super class)有一个 View (UILabel),它根据另一个标签中是否有内容来调整其在单元格中的垂直位置。如果第二个标签中有内容,则第一个标签在第二个标签和单元格 View 顶部之间垂直居中。如果第二个标签没有任何内容,则第一个标签在单元格 View 的顶部和底部之间垂直居中。

我喜欢这种行为。我正在尝试在第一个标签旁边添加第三个标签。我使用自动布局约束将新标签固定在第一个标签附近,如下所示:

[NSLayoutConstraint constraintsWithVisualFormat:@"[firstLabel]-(5)-[thirdLabel]" options:0 metrics:nil views:views];

这工作正常,但我不知道如何对垂直位置做类似的事情。理想情况下,我会将第三个标签“固定”为始终与第一个标签处于相同的垂直对齐方式,无论它是什么,但我不知道如何用视觉格式语言来表达它。

作为替代方案,弄清楚如何复制第一个标签的行为(根据第二个标签的存在或不存在调整它的垂直对齐方式)。

当第二个标签 存在时,此约束可以正确垂直对齐新标签,但如果该特定单元格上的第二个标签为空,则它不会执行任何操作:

[NSLayoutConstraint constraintsWithVisualFormat:@"V:[thirdLabel][secondLabel]" options:0 metrics:nil views:views];

如何表达这种布局约束?

最佳答案

视觉格式语言最适合用于创建一个接一个地对齐项目的约束。

对于更复杂的布局,例如您要构建的垂直居中对齐,您应该使用 NSLayoutConstraintconstraintWithItem:[...].方法。

这是你可以做的:

[NSLayoutConstraint constraintWithItem:thirdLabel
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:firstLabel
attribute:NSLayoutAttributeCenterY
multiplier:1
constant:0];

希望对您有所帮助,

关于ios - 使用自动布局应用与兄弟 View 相同的垂直位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25081279/

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