2016-08-05 5 views
0

を使用するため、私は両方のビューのために、ユーザNSLayoutFormatAlignAllTopにしたいが、 は以下の私のコード -トップマージン私はプログラム的に2つのUIViewsを作成し、ビジュアルフォーマット言語自動レイアウトを実装する必要があり自動レイアウトのiOS

-(void)doCodeForWidthAndHeight 
{ 
    UIView *myView = [[UIView alloc] init]; 
    myView.backgroundColor = [UIColor redColor]; 
    myView.translatesAutoresizingMaskIntoConstraints = NO; //This part hung me up 
    [self.view addSubview:myView]; 

    UIView *mySecondView = [[UIView alloc] init]; 
    mySecondView.backgroundColor = [UIColor greenColor]; 
    mySecondView.translatesAutoresizingMaskIntoConstraints = NO; //This part hung me up 
    [self.view addSubview:mySecondView]; 

    NSDictionary *viewsDictionary = @{@"myView":myView,@"mySecond":mySecondView}; 

    // 1. Create a dictionary of views 
    NSArray *constraint_POS_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-200-[myView(100)]-[mySecond(100)]" options:0 metrics:nil views:viewsDictionary]; 

    NSArray *constraint_POS_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[myView(40)]-40-[mySecond]-30-|" options:0 metrics:nil views:viewsDictionary]; 

    NSArray *topMargin = [NSLayoutConstraint constraintsWithVisualFormat:@"[myView]-[mySecond]" options:NSLayoutFormatAlignAllTop metrics:nil views:viewsDictionary]; 

    [self.view addConstraints:constraint_POS_H]; 
    [self.view addConstraints:constraint_POS_V]; 
    [self.view addConstraints:topMargin]; 
} 

This is the result of my current code and result is correct, but i can see some warning message in log

です

Pelaseは、現在のコードでNSLayoutFormatAlignAllTopオプションを使用する方法を提案しています。 ログにエラーがあります 同時に制約を満たすことができません。 おそらく、次のリストの制約の少なくとも1つは、あなたが望まないものです。 これを試してください: (1)それぞれの制約を見て、あなたが期待していないものを見つけようとしてください。 (2)不要な制約を追加したコードを見つけて修正します。 ( 「」、 「」 )

制約

を破って回復を試みますデバッガでこれをキャッチするUIViewAlertForUnsatisfiableConstraintsでシンボリックブレークポイントを作成します。 UIViewのUIConstraintBasedLayoutDebuggingカテゴリのメソッドも参考になる場合があります。 2016-08-05 20:12:41.763 FamilyApp [12908:242194]同時に制約を満たすことができません。 おそらく、次のリストの制約の少なくとも1つは、あなたが望まないものです。 これを試してください: (1)それぞれの制約を見て、あなたが期待していないものを見つけようとしてください。 (2)不要な制約を追加したコードを見つけて修正します。 ( ""、 ""、 "" )

制約

を破って回復を試みますデバッガでこれをキャッチするUIViewAlertForUnsatisfiableConstraintsでシンボリックブレークポイントを作成します。 UIViewのUIConstraintBasedLayoutDebuggingカテゴリのメソッドも参考になる場合があります。

+0

達成しようとしていることは何ですか?最初の制約は、最初のビューを2番目のビューよりも上にしたいとしています。 – dan

+0

はい私は間違っていることを知っています、この解決策を教えてください –

答えて

2

同時に、あなたのビューは水平に隣り合っており、垂直にお互いに並んでいると言います。それ無理。

+0

Thnx ZaBlanc、私は紛争があることがわかります。このシナリオの最も正確な解決策を教えてください。私はちょうどトップアライメントをしたい –

関連する問題