UITableViewCell サブクラスにサブビューを配置するために AutoLayout を使用しています。ビュー階層は次のように構成されています。
- トップコンテナビュー
- 画像表示
- コメント コンテナー ビュー
- アバター画像表示
- いいねボタン
- ユーザー名ラベル
- コメントボタン
- コメント ラベル
画像ビューに画像がある場合、確立した制約は意図したとおりに機能します。ただし、画像がなく、画像ビューの高さが 0 の場合、コメント ビューはそのコンテナーを埋めることができません (つまり、上部がスーパービューの上部と等しくありません)。ビュー A の上部がビュー B の下部に固定され、ビュー B の高さが 0 の場合、ビュー A の origin.y はビュー B の origin.y になると予想されます。しかし、それは起こっていることではありません。AutoLayout の書式設定の何が問題なのか、誰か教えてもらえますか?
[self.contentContainerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_postImageView(<=200.0)][_commentView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_postImageView, _commentView)]];
_commentView のサブビューには他にも制約があり、リクエストに応じて投稿します。
何が起こっているかのショットは次のとおりです。
そして、2 番目のセルの目的の効果 (これは、書式文字列を : に変更したときに得られるものです@"|[_commentView]|
): 明らかに、これは画像が存在する場合を破ります。