IOS6界面构建器自动布局:崩溃无法在视图上安装约束条件

3
当我尝试使用自动布局添加所有视图时,出现以下消息:
CRASH Unable to install constraint on view. 
Does the constraint reference something from outside the subtree of the view?  
That's illegal. 
constraint:<NSLayoutConstraint:0x756b510 UIPickerView:0x756f220.top == 
LoginView:0x75e9d30.top + 106> view:<LoginView: 0x75e9d30; 
frame = (0 15; 320 430); autoresize = RM+BM; layer = <CALayer: 0x75e9dc0>>

有人有想法吗?


最终,我使用另一个xib来处理IPHONE5长屏幕问题。由于我没有足够的时间去理解... - nullmicgo
同样的问题,我的iPhone上没有发生,但在iPad和iPod上出现了。 - gabrielpalomino
我刚刚在下面发布了我的解决方案,你可以看一下。但是要确定……它不适用于使用自动布局,因为我是用另一种方式实现的。 - nullmicgo
可能是重复的问题:NSGenericException', reason: '无法在视图上安装约束 - Max MacLeod
2个回答

0

我在选择器视图上遇到了完全相同的问题。点击输入字段会打开选择器视图,然后我选择了选择器视图上的某个选项并关闭了它。当我转到另一个视图,然后再次返回到选择器视图时,我遇到了上述错误。我通过关闭自动布局来解决了这个问题。这可以在文件检查器上完成,只需取消自动布局即可。


-1

快速提示: 您需要为一个视图控制器创建3个XIB文件

  1. YourViewController.xib,
  2. YourViewController-568.xib,
  3. YourViewController~ipad.xib

并在每个YourViewController.m中添加以下代码, 然后它将为不同的用户设备加载不同的视图

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
   // if(nibNameOrNil == nil){
        nibNameOrNil = @"YourViewController";

        if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
            if([UIScreen mainScreen].bounds.size.height > 480){

                nibNameOrNil = @"YourViewController-568";
                // iphone5+
            }else{
                // older than iphone5
            }
        }
   // }

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self){

    }
    return self;
}

ctrl-K是缩进的好帮手 :-) 还要注意,编号列表项需要使用“1。”(注意句点后面的空格),而不是“1)” - kleopatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接