gpt4 book ai didi

ios - 在代码中使两个 AutoLayout 约束相等?

转载 作者:行者123 更新时间:2023-12-01 17:40:35 25 4
gpt4 key购买 nike

我是第一次尝试使用 AutoLayout(而不是使用 IB/storyboards),我正在尝试在 UITableViewCell 中进行一些简单的垂直对齐,一个标题标签和一个详细标签,布局如下:

—————— 
Padding
Title Label
Spacing (3px)
Detail Label
Padding
——————

我正在努力的部分是让那里的两个“填充”约束始终保持相等。其他一切都有效,但标签位于单元格的最顶部或最底部。

我实际上是使用 Masonry 来实现的,它看起来像这样:
// Constrain the title label at the top of the label container.
[title makeConstraints:^(MASConstraintMaker *make) {
make.top.greaterThanOrEqualTo(self.contentView.top).with.priorityLow();
}];

// Constrain the detail label to the bottom of the label container.
[detail makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLabel.bottom).with.offset(3).with.priorityHigh();
make.bottom.lessThanOrEqualTo(self.contentView.bottom).with.priorityLow();
}];

我需要 make.top来自 title 的行约束和 make.bottom来自 detail 的行约束以始终保持相同的值,以便标题/间距/细节位于中间。

我在这里想念什么?

最佳答案

这是你不能仅仅通过正常的约束来做的事情。

您不能使空间彼此相等。

您需要做的是使用不可见的“间隔” View 并使它们的高度相等。

所以你会有类似的东西......

// in pseudo VFL
V:|[topSpacer][titleLabel]-[subTitleLabel][bottomSpacer(==topSpacer)]|

制作 topSpacer 和 bottomSpacer alpha = 0hidden = YES它会隐藏它们,但它们将充当布局脚手架。

通过这样做,titleLabel 上方的间隙将与 subTitleLabel 下方的间隙相同。

关于ios - 在代码中使两个 AutoLayout 约束相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158573/

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