gpt4 book ai didi

swift - 更改堆栈 View 中多个字段之一的高度

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:42 25 4
gpt4 key购买 nike

在我的代码中,我有一个堆栈 View ,它最初有 1 个元素 PhoneNumberField。另一个 PhoneNumberFields 可以在运行时动态添加:

@IBAction func addAlternatePhoneNumberAction(_ sender: UIButton) {
let alternateNumberView = PhoneNumberField()
...
phoneNumberStackView.addArrangedSubview(alternateNumberView)
}

这就是 PhoneNumberField 的 xib 的样子: enter image description here

问题是我希望能够根据“移动组合框”的内容动态隐藏“其他电话的名称”字段。当我设置“isHidden”参数时,一切都按预期工作,唯一的问题是 PhoneNumberField 高度保持不变。当隐藏“其他电话的名称”字段时,我希望它缩小。

我尝试在 PhoneNumberField.swift 文件中使用 otherNumberNameField 的高度常量 socket 来做这件事,但问题是在那种情况下所有的 PhoneNumberFields 在堆栈 View 中具有第一个字段的大小。

什么是正确的解决方案?

编辑:除了下面的答案:我必须将 phoneNumberStackView 的分布设置为 equal spacing。工作起来很有魅力。

最佳答案

首先,创建 StackView。

不要设置它的高度约束,只设置顶部、前导、尾随和底部约束。底部约束设置等于错误标签顶部约束。

然后将其分布设置为Fill Equally

enter image description here

现在将前两个 View 放入一个 View 中,并将此 View 与 OtherNumberField View 一起放入此 StackView。

所以现在你的层次结构应该是这样的:

enter image description here

现在,当您从 StackView 中隐藏一个 View 时,StackView 会变小,因为您没有设置它的高度。

关于swift - 更改堆栈 View 中多个字段之一的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395160/

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