首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autolayout (VFL)用于添加代码而不是故事板的视图

Autolayout (VFL)用于添加代码而不是故事板的视图
EN

Stack Overflow用户
提问于 2015-12-31 09:23:52
回答 1查看 161关注 0票数 0

如果我从情节提要中添加视图,我可以通过代码处理他们的自动收费限制,但是如果我在一个通过代码添加的视图上进行尝试,就无法处理它。

我在viewDidLoad()中调用下面的代码,但是没有工作,缺少的部分是什么?

代码语言:javascript
复制
    var testView = UIView()
    testView.backgroundColor = UIColor.greenColor()
    self.view.addSubview(testView)

    let views : [String : AnyObject] = ["testView": testView]
    var allConstraints = [NSLayoutConstraint]()

    let verticalConstraint = NSLayoutConstraint.constraintsWithVisualFormat(
        "V:|-[testView(100)]",
        options: [],
        metrics: nil,
        views: views)
    allConstraints += verticalConstraint

    let horizontalConstraint = NSLayoutConstraint.constraintsWithVisualFormat(
        "H:|-[testView(200)]",
        options: [],
        metrics: nil,
        views: views)
    allConstraints += horizontalConstraint

    NSLayoutConstraint.activateConstraints(allConstraints)

ps:也试过这些台词,但是没有帮助

代码语言:javascript
复制
    self.view.addConstraints(verticalConstraint)
    self.view.addConstraints(horizontalConstraint)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-31 09:42:28

您需要关闭自动调整掩码到约束的转换。默认情况下,它的设置为true,如果您倾向于忘记这一点,它将添加您不打算添加的约束。

您可以将此设置为false

代码语言:javascript
复制
var myView = UIView()
myView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(myView)

translatesAutoresizingMaskIntoConstraints 如果此属性的值为“是”,则系统将创建一组约束,这些约束重复视图的自动调整掩码所指定的行为。默认情况下,对于以编程方式创建的任何视图,该属性设置为“是”。如果在Interface中添加视图,系统会自动将此属性设置为否。

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

https://stackoverflow.com/questions/34544102

复制
相关文章

相似问题

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