【问题标题】:IBOutlet didn't work with Hard Code constraintsIBOutlet 不适用于硬代码约束
【发布时间】:2014-05-20 14:41:57
【问题描述】:

我有一个关于自动布局世界的新问题,我可以将问题总结为以下步骤:

1- 我的情节提要只有一个场景包含 UIImageView 。

2- 我转到 viewcontroller.m 文件并添加如下代码的手动约束

[self.bgImageView setTranslatesAutoresizingMaskIntoConstraints:NO];


NSLayoutConstraint *horizentalSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.bgImageView
                                                                         attribute:NSLayoutAttributeTrailing
                                                                         relatedBy:NSLayoutRelationEqual
                                                                            toItem:self.view
                                                                         attribute:NSLayoutAttributeBottom
                                                                        multiplier:1.0
                                                                          constant:0.0]; 
[self.view addConstraint:horizentalSpaceConstraint];

结果:

约束没有影响 UIImageView 的 IBoutlet,但是如果我从 viewcontroller.m 文件中的硬编码添加 UIImageView 它可以工作,你能帮我发现这个问题吗?

【问题讨论】:

  • 你有没有在 self.view 中添加过这个约束?
  • 是的,我已经像上面的代码一样添加了它

标签: ios nslayoutconstraint autolayout flkautolayout


【解决方案1】:

我找到了可以通过以下方式描述的解决方案(使用 IBOutlet 元素的每个约束都应该在开始之前只添加以下行没有需要 [setTranslatesAutoresizingMaskIntoConstraints :No]

-(void)viewWillAppear:(BOOL)animated{

    // Step 1 remove view constraints for IBOutlet elements  

    [self.view removeConstraints:self.view.constraints];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2017-12-09
    相关资源
    最近更新 更多