サブビューとしてUIImageViewと複数行のUILabelを持つカスタムコンテナビューを作成しようとしています。自動レイアウトとうまくビューを機能させるために、私は以下のようにintrinsicContentSizeをオーバーライドしています:intrinsicContentSizeを使用する動的な高さのUIView
- (CGSize)intrinsicContentSize
{
return [self sizeThatFits:self.bounds.size];
}
sizeThatFitsに計算されたサイズは同じ幅を有し、ラベルとイメージがクリップされないように高さを調整します。これはうまく動作しますが、私は次のコメントのドキュメントで見て驚きました:動的に基づいて、レイアウトシステムに変更された幅を通信する方法はありませんので、この本質的なサイズは、コンテンツフレームの独立していなければならない
例えば、変更された高さ。
この場合、幅と内容に基づいてビューの現在の高さを調整する自動レイアウト方法は何ですか?私はこれとは別の方法で接近すべきでしょうか?
コンテンツがクリップされないようにするには、コンテナビューの圧縮抵抗の優先順位を上げる必要があります。 –
圧縮抵抗は、ビューがその固有のコンテンツサイズよりも小さくされるのを防ぐための優先順位です。本質的なコンテンツのサイズが正しくない場合、これはあまり使用されません。 – Tark