首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在OSX上Swift中将NSView添加到setFrameOrigin的超级视图中

在OSX上Swift中将NSView添加到setFrameOrigin的超级视图中
EN

Stack Overflow用户
提问于 2016-06-03 21:52:24
回答 1查看 851关注 0票数 0

我在运行时动态地向superview添加子视图,并希望调整superview的大小以匹配该子视图。调整大小是很好的,但是当我添加子视图时,它不是居中的。第二个视图似乎是在第一个视图结束时添加的。

这是一段被多次调用并被传递给不同subViews的代码:

代码语言:javascript
运行
复制
    self.currentConstraints = [
        NSLayoutConstraint(item: superView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: subView.frame.size.height),
        NSLayoutConstraint(item: superView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: subView.frame.size.width)
    ]

    superView.addConstraints(self.currentConstraints!)

    addChildViewController(viewController)
    superView.addSubview(viewController.view)

我可以让subView在setFrameOrigin中来回移动,但这是根据它们在开始时错误定位的位置而上下移动的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-16 22:38:57

最后,我放弃了使用约束,并在超级视图上使用setFrameSize。我之前跳过的这个方法是因为它所在的popover没有调整大小,所以我只是将它设置为一个委托,并在添加新的子视图时调整它的大小。

代码语言:javascript
运行
复制
    superView.setFrameSize(subView.frame.size)

    self.delegate.subViewChanged(subView.frame.size)

    addChildViewController(viewController)
    superView.addSubview(viewController.view)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37623991

复制
相关文章

相似问题

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