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>>

有人有想法吗?

4

2 回答 2

0

我在选择器视图上确实有同样的问题。点击输入字段打开选择器视图,然后我在选择器视图上选择了一些内容并将其关闭。当转到另一个视图然后再返回到 pickerview 时,我得到了提到的错误。我通过关闭自动布局解决了这个问题。这可以在文件检查器上完成,只需取消选中自动布局。

于 2013-07-22T08:12:23.847 回答
-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;
}
于 2012-11-14T05:45:22.750 回答