0

UI で自動レイアウトの競合をデバッグしようとしています。

IB を使用して UI 全体を設定しました。

私が抱えている問題は、というUICollectionViewサブクラス内のオブジェクトに関連していますFrameCell

FrameCellは aUIImageViewと aUILabelがあり、どちらもセルの水平方向の中央に配置されています。

そして、垂直方向の制約は次のようになります...

V:|-20-[UIImageView]-50-[UILabel(==26)]-25-|

つまり、UIImageViewセルのサイズに応じて高さが変わります。

しかし、私はエラーが発生しています...

( 
    "<NSAutoresizingMaskLayoutConstraint:0x20087d00 h=--& v=--& V:[FrameCell:0x1edaf4a0(0)]>", 
    "<NSLayoutConstraint:0x1edafc10 UIImageView:0x1edaf960.top == FrameCell:0x1edaf4a0.top + 20>", 
    "<NSLayoutConstraint:0x1edafb50 FrameCell:0x1edaf4a0.bottom == UILabel:0x1edaf5c0.bottom + 25>", 
    "<NSLayoutConstraint:0x1edafb10 V:[UIImageView:0x1edaf960]-(50)-[UILabel:0x1edaf5c0]>" 
) 

Will attempt to recover by breaking constraint  
<NSLayoutConstraint:0x1edafb10 V:[UIImageView:0x1edaf960]-(50)-[UILabel:0x1edaf5c0]> 

エラーはほぼ確実に NSAutoresizingMaskLayoutConstraint から発生していますが、これを取り除く方法がわかりません?! FrameCell の高さを 0 に設定するのはなぜですか?!

セルでオフにしようとするとtranslatesAutoresizingMaskIntoConstraints、内部整合性エラーが発生します。IB を使用してすべてを設定しているので、この AutoResizingMask がどこから来ているのかわかりませんか?

4

2 に答える 2

1

==を使用するよりもラベルサイズを修正したい場合は、これを試してみてください。

 V:|-20-[UIImageView]-50-[UILabel(==26)]-25-|
于 2013-05-20T13:13:56.020 に答える