首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将NSGridView高度设置为其内容视图的高度

将NSGridView高度设置为其内容视图的高度
EN

Stack Overflow用户
提问于 2017-10-25 11:24:53
回答 1查看 1.2K关注 0票数 2

我定义了这样一个网格视图:

代码语言:javascript
运行
复制
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)

在某些情况下,网格视图的高度会增加。

我可以定义一个显式高度

代码语言:javascript
运行
复制
let constraintV = NSLayoutConstraint.constraints( withVisualFormat: "V:[GridView(==70)]-50-[anotherView]", options: [], metrics: nil, views: layoutViewMap)

如何存档,不是显式地给出高度,而是根据其内容计算高度等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 06:37:13

听起来你想要的是你的NSGridView拥抱它包含的内容。要做到这一点,只需在视图上提升contentHuggingPriority即可。

代码语言:javascript
运行
复制
gridView.setContentHuggingPriority(600, for: .horizontal)
gridView.setContentHuggingPriority(600, for: .vertical)

600有点任意性(默认值为249,刚好低于.defaultLow),但它来自WWDC 2016汽车布局讲座

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46931162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档