我定义了这样一个网格视图:
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)
如何存档,不是显式地给出高度,而是根据其内容计算高度等。
发布于 2017-10-27 06:37:13
听起来你想要的是你的NSGridView拥抱它包含的内容。要做到这一点,只需在视图上提升contentHuggingPriority
即可。
gridView.setContentHuggingPriority(600, for: .horizontal)
gridView.setContentHuggingPriority(600, for: .vertical)
600有点任意性(默认值为249,刚好低于.defaultLow
),但它来自WWDC 2016汽车布局讲座
https://stackoverflow.com/questions/46931162
复制相似问题