autolayout を使用する場合、intrinsicContentSize を呼び出すことは、ビューのコンテンツに適切に適合するために必要な CGSize を決定する方法のようです。
ただし、このメソッドは限られた数の既存の UIView でのみサポートされています。カスタム ビューを作成するときはいつでも、コンテナー UIView 内の UILabel のような単純なものであっても、そのビューを含むビューはその固有の ContentSize を決定できません (-1 を返します)。
ビューを画面に正しく表示できるのに、ビュー自体の高ささえわからない理由がわかりません...
コンテナー ビューの UILabel は単純な例ですが、相互にネストされた 15 個のビューがある、もう少し複雑な UIView を扱っています。すべてのサブビューを含むビューのサイズを決定するには、独自のintrinsicContentSizeメソッドを手動で作成し、サブビューのすべての高さを合計し、それにすべての高さを追加する必要がある非常に時間のかかる作業を行う必要があります制約。このプロセスはひどいです。サブビューまたは制約のいずれかの高さを追加するのを忘れて、どこかの高さを見逃すのは非常に簡単です。また、動的サブビューがあるという事実によって、問題はさらに複雑になります。たとえば、ビューに 2 列の動的サブビューがある場合、各列のサブビュー + 制約の高さを手動で見つける必要があります。これらの高さを比較し、2 つのうち大きい方を返します。繰り返しますが、これは単純な例ですが、それほど単純ではないことが多く、多くの片頭痛を引き起こしています.
先ほど質問した内容に戻ります。ビューの高さがわからないのに、iOS はどのようにビューを表示できますか? その高さを知る方法がいくつかあるはずです。読んでくれてありがとう。