1

コンソールの AutoLayout 設定で競合エラーが発生します。

私は彼らが何を意味するか知っています。

エラーが参照しているビューを見つけるにはどうすればよいですか?

AutoLayout エラーが読みやすくなるように、ビューにいくつかの識別子を設定する WWDC ビデオを見たことがあります。

現時点では...

( 
    "<NSAutoresizingMaskLayoutConstraint:0x20964090 h=--& v=--& H:[UIView:0x1fdddbf0(480)]>", 
    "<NSLayoutConstraint:0x1fde8000 H:[UIView:0x1fdb35a0(320)]>", 
    "<NSLayoutConstraint:0x1fdb3dc0 H:|-(0)-[UIView:0x1fdb35a0]   (Names: '|':UIView:0x1fdb7040 )>", 
    "<NSLayoutConstraint:0x1fdb3d80 UIView:0x1fdb35a0.trailing == UIView:0x1fdb7040.trailing>", 
    "<NSAutoresizingMaskLayoutConstraint:0x1fd66e30 h=-&& v=-&& UIView:0x1fdb7040.width == UIView:0x1fdddbf0.width>" 
) 

おそらく AutoresizingMask がエラーの原因であることはわかっていますが、どの AutoresizingMask なのかわかりません。

4

2 に答える 2

0

通常、コードに制約を追加して割り当てられた名前を付けるときにのみ、ラベルを表示しました。ストーリーボードを介してそれらを追加している場合は、ビューに XCode 識別子を追加してみてください。ただし、その問題に遭遇したときは、通常、関心のあるビューを出力するためにいくつかの NSLog ステートメントを追加します。

NSLog(@"My View: %@", self.myView);

ビューのIDが表示されます。うまくいけば、次のようなものです

My View: UIView:0x1fdddbf0

あなたの場合。

とはいえ、ビューが何であるかを知っていても、ここで大いに役立つかどうかはわかりません。標準的なアドバイスは、自動レイアウトを使用するビューでは Autoresizing Mask をオフにすることです。それらを調整した経験はあまりありませんが、問題は、1 つのビューが 320pt 幅に設定されており、自動サイズ変更マスクによって 480pt 幅に設定される制約が追加されていることです。

于 2013-06-11T19:23:33.180 に答える