在良好的资源方面,我绝对推荐WWDC2012的3个视频:OSX/iOS自动布局简介,示例自动布局简介以及掌握自动布局的最佳实践。这些有一些技巧来寻找布局中的歧义和处理冲突
另一个很好的参考是Erica Sadun的iOS6食谱书。
重新提出您的问题。我假设你没有看到错误信息,并且你完全在XIB中规划了进度HUD。如果是这样,这听起来像你有两个限制,不像你希望从xib那里表现的那样 - 从superView的顶部到HUD的高度
首先,为约束创建一个出口到.h文件
@property (strong) IBOutlet NSLayoutConstraint *HUDSuperViewToHUDConstraint;
@property (strong) IBOutlet NSLayoutConstraint *HUDHeight;
接下来,在你打开与HUD新的viewController的方法去除限制,这样是没有冲突的,当你第一次显示新的视图
[HUDSuperView removeConstraint:self.HUDSuperViewToHUDViewConstraint];
[HUDSuperView removeConstraint:self.HUDHeight];
在第一次调用[HUDSuperView layoutIfNeeded]之后即,在动画或其它地方,加约束,并呼吁layoutIfNeeded再次
[HUDSuperView addConstraint:self.HUDSuperViewToHUDViewConstraint];
[HUDSuperView addConstraint:self.HUDHeight];
[HUDSuperView layoutIfNeeded];
如果你把这些一个animateWithDuration内它甚至可能是动态的外观... cheesey
希望这有助于 - 它可能更多向解决方案迈出了一步,而不是解决方案本身。在AutoLayout by Example视频中也推荐分钟17和53。
Steve
您是从XIB加载视图?如果是,请尝试取消选中自动布局子视图并将所有可能的位置视图安排设置为关闭。它可以在为XIB设置帧的地方完成。 – Mohammad
没有办法,不幸的是... –