无法以编程方式在视图上设置约束

时间:2014-06-03 16:11:26

标签: ios autolayout

我试图做一些非常简单的事情: 从头开始创建视图,将其添加到控制器的视图中,并使其与其超级视图边缘地延伸,但是一旦应用程序运行,我会收到控制台警告,说不能同时将约束添加到视图中。 / p>

    backView = [UIView new];
    backView.backgroundColor = [UIColor redColor];
    [[self view] insertSubview:backView aboveSubview:tableview];
    [[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-0-[back]-0-|"
                                                                        options:0
                                                                        metrics:nil
                                                                          views:@{@"back": backView}]];

     [[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[back]-0-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:@{@"back": backView}]];

1 个答案:

答案 0 :(得分:1)

在代码UIView中创建translates auto-resizing mask to constraints时。

即。它会在你创建它时使用你给它的帧和自动调整大小的蒙版并将它们转换为NSLayoutConstraints

这些自动生成的约束会与您手动添加的约束冲突。

如果我是对的,那么你可以通过添加行来修复它......

backView.translatesAutoresizingMaskIntoConstraints = NO;

在第一行之后,它应该解决问题。