ios - 选择 stackView 上的哪个子视图将拉伸(以编程方式)
问题描述
我有一个水平堆栈视图的显示,其中子视图包含在标签和文本字段上。stackView 受视图边框的限制
我正在尝试将我的 textField 子视图拉伸到以填充堆栈的剩余空间,而标签的堆栈会调整以适合标签大小本身。但相反的情况正在发生。我尝试了很多解决方案,但没有任何帮助。我们以编程方式制作的所有视图和约束。
对于我的堆栈,我正在使用:
func customTextField() -> UIStackView {
let stack: UIStackView = {
let sv = UIStackView()
sv.axis = .horizontal
sv.isLayoutMarginsRelativeArrangement = true
sv.alignment = .leading
sv.backgroundColor = .red
sv.translatesAutoresizingMaskIntoConstraints = false
return sv
}()
let label: UILabel = {
let lb = UILabel()
lb.backgroundColor = .red
lb.text = "Label is here"
lb.translatesAutoresizingMaskIntoConstraints = false
return lb
}()
let textField: UITextField = {
let tf = UITextField()
tf.backgroundColor = .blue
tf.text = "Text Field"
tf.translatesAutoresizingMaskIntoConstraints = false
return tf
}()
stack.addArrangedSubview(label)
stack.addArrangedSubview(textField)
return stack
}
我的 customTextField 的调用者:
let profileUserStack: UIStackView = {
let stack = UIStackView()
stack.axis = .vertical
stack.spacing = 8
stack.contentMode = .scaleToFill
stack.translatesAutoresizingMaskIntoConstraints = false
return stack
}()
self.addSubview(profileUserStack)
for i in profileTextViews {
let view = self.customTextField()
profileUserStack.addArrangedSubview(view)
}
constraints.append(profileUserStack.buildConstraint(toItem: perfilImageView, constant: 32, type: .top, baseItem: .bottom))
constraints.append(profileUserStack.buildConstraint(toItem: self, constant: 16, type: .leading, baseItem: .leading))
constraints.append(profileUserStack.buildConstraint(toItem: self, constant: -16, type: .trailing, baseItem: .trailing))
activateConstraints(&constraints, to: self)
结果: https ://imgur.com/a/ccFZlRM
请注意,这正是我想要实现的。但我希望 textField 被拉伸。
解决方案
设置contentHuggingPriority
为您的label
,使其始终保持其内容的大小并textField
占用剩余空间。
label.setContentHuggingPriority(.defaultHigh, for: .horizontal)
推荐阅读
- laravel - Stripe、Stripe Payments、Connect、关联账户、拆分支付
- python - client.get_symbol_info 返回无 Python
- python - 与 SymPy 的三个球体相交(三边测量)
- c# - C# linq 表达式。如何获得不同的偏移量和“任何”偏移量?
- react-native - 为什么这个 navigation.goBack 没有按我的预期工作?如何获得最后的活动状态?
- c# - HtmlAgilityPack 问题
- excel - Excel - 通过查找编号和查找数据获取两张工作表之间的数据
- ios - 如何通过淡入和淡出在一个标签中显示多个文本的数组
- azure-data-factory - 集成 Azure 数据工厂和 Slack 的最佳实践?
- css - CSS 与 React Native