【发布时间】:2020-06-01 21:11:05
【问题描述】:
我有一个在滚动视图中垂直扩展的视图数组。视图的宽度相等,并从上到下排列。每个视图都有一个以固定高度开始的多行文本字段,并随着行的添加而变得更高。如何将父视图的高度限制为文本字段的高度?是否可以做这样的事情(在自身内部约束视图)?
Class DocCell: NSView {
// removed unnecessary components
var textField: NSTextField!
override func updateConstraints() {
NSLayoutConstraint.activate([
heightAnchor.constraint(equalTo: textField.heightAnchor, constant: 10),
// ..other constraints
])
}
}
目标是我不必在每次 textField 添加新行时更新每个视图的高度,并且包含视图的大小只是随着 textField 扩展。
【问题讨论】:
-
我不明白难的部分是什么。为什么不将文本字段的顶部固定在其父视图的顶部,将其底部固定在其父视图的底部?如果有多个文本字段,为什么不将底部到顶部到底部到顶部固定在一个链中等?
-
也许没有“难点”,我错过了自动布局如何工作的部分内容。我的理解是,如果我这样做,textField 的高度将是静态的,并且在添加换行符时它们将是不可见的。如果我只是将它的顶部和底部约束到 textField 的顶部和底部,视图会随着 textView 的大小而增加吗?
标签: swift xcode macos cocoa nsview