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

-1

簡単なヒント: 1 つの View Controller に対して 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 に答える