2013-06-14 7 views
6

ラベル付きのScrollviewがあります。上部中央にあるラベルを中央に、私はそれに2つの制約適用:NOにquestionLabelためtranslatesAutoresizingMaskIntoConstraintsを設定せずにtranslatesAutoresizingMaskIntoConstraintsをNOに設定した後の黒い画面

[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-30-[questionLabel]" 
                  options:0 
                  metrics:0 
                   views:viewsDictionary]]; 
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.questionLabel 
               attribute:NSLayoutAttributeCenterX 
               relatedBy:NSLayoutRelationEqual 
                toItem:self 
               attribute:NSLayoutAttributeCenterX 
               multiplier:1.0 
                constant:.0]]; 

を、私はコアレイアウトによってスローされた例外に実行されます。

(
"<NSLayoutConstraint:0x8e3baf0 V:|-(30)-[UILabel:0xa184ca0] (Names: '|':WLQuestionnaireSingleQuestionView:0xa184050)>", 
"<NSAutoresizingMaskLayoutConstraint:0x8e3efa0 h=--& v=--& UILabel:0xa184ca0.midY == + 15>" 

があって、私はコアのレイアウトが自動的に自動サイズ変更マスクとの下位互換性を持つように生成された制約を満たすためにしようとしたことを参照してください。それは、以下の制約を満たすことができなかったことを私に警告します。私の理解では、この問題を解決するにはtranslatesAutoresizingMaskIntoConstraintsをNOに設定する必要がありますが、残念ながら完全に黒い画面になり、デバッグメッセージは表示されません。

私はプログラムでビューを実装しました。

+1

私は同じタイプの行動と戦っています。回避策を見つけましたか? – topwik

+0

私は同じ問題を抱えています。 – clearwater82

+0

申し訳ありませんが、それはずっと前でしたし、私はもうソースにアクセスできません。私は問題(おそらく最初のこの問題を回避する)のための非常に具体的な解決策として回避策があったと信じていますが、私は今この特定の問題の解決策を持っているとは言えません。 – ff10

答えて

0

まあ、この質問はすでにかなり古いです。しかし、私はまだ他の人にとっては面白いかもしれないので、これに対する答えを出したい。 AutoLayoutでUIScrollViewを使用しているので、コンテンツサイズは制約によって決まります。ビューから底までの制約がないため、高さを正しく設定することはできません。ビューの幅を指定しなかった場合と同じ幅です。 AutoLayoutに、ビューの中央に配置する必要があることを伝えました。あなたの問題は、次のコード(ビューの幅= 40)を使用して解決できます。

[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(30)-[questionLabel]|" 
                 options:0 
                 metrics:0 
                  views:viewsDictionary]]; 
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.questionLabel 
               attribute:NSLayoutAttributeCenterX 
               relatedBy:NSLayoutRelationEqual 
                toItem:self 
               attribute:NSLayoutAttributeCenterX 
               multiplier:1.0 
                constant:.0]]; 
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[questionLabel(40)]", options: 0, metrics: 0, views: viewsDictionary]]; 
関連する問題