IBOutlet没有使用硬编码约束

时间:2014-05-20 14:41:57

标签: ios autolayout nslayoutconstraint nsautolayout flkautolayout

我有与Auto-Layout世界相关的新问题,我可以通过以下步骤总结问题:

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硬编码,它可以帮助我发现这个问题。

1 个答案:

答案 0 :(得分:0)

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

-(void)viewWillAppear:(BOOL)animated{

    // Step 1 remove view constraints for IBOutlet elements  

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