我定义了这样的网格视图:
let lb01 = NSTextField(labelWithString: "01")
....
let gridView = NSGridView(views:
[ [empty, lb01],
[empty, lb02],
[lb03, lb04]
])
gridView.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(gridView)
let layoutViewMap = ["another View": anotherView, "GridView": gridView]
var constraintList = [NSLayoutConstraint]()
let constraintV = NSLayoutConstraint.constraints( withVisualFormat: "V:[GridView]-50-[anotherView]", options: [], metrics: nil, views: layoutViewMap)
constraintList += constraintV
let constraintH = NSLayoutConstraint.constraints( withVisualFormat: "|-20-[GridView(==300)]", options: [], metrics: nil, views: layoutViewMap)
constraintList += constraintH
NSLayoutConstraint.activate(constraintList)
在某些情况下,网格视图的高度增长
我可以用
定义一个显式高度let constraintV = NSLayoutConstraint.constraints( withVisualFormat: "V:[GridView(==70)]-50-[anotherView]", options: [], metrics: nil, views: layoutViewMap)
我如何存档,高度未明确给出,但计算高度等与其内容
答案 0 :(得分:2)
听起来你想要的是你的NSGridView拥抱它包含的内容。为此,您只需要在视图上提升contentHuggingPriority
。
gridView.setContentHuggingPriority(600, for: .horizontal)
gridView.setContentHuggingPriority(600, for: .vertical)
600有些随意(默认为249,刚好低于.defaultLow
),但它来自WWDC 2016 Auto Layout talk