##固有サイズ(intrinsic content size)
イメージやテキスト用のビューについて、そのコンテンツを圧縮する、切り出すことなく表示するために必要な最小サイズのこと。
例えばボタンなら、タイトルとなる文字列が短くなったり長くなったりするのに合わせて、固有サイズが変わる。
これは、サイズに関するその他の制約が存在しない、または優先度が低い場合に有効となる。
固有サイズは、ビューのプロパティintrinsicContentSize
に設定される。
##- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize
すべての制約(サブビューの制約含めて)を考慮して、最適なサイズを返却する。
制約を考慮する際に、サブビューの固有サイズが利用される。
targetSize | description |
---|---|
UILayoutFittingCompressedSize | コンテンツを表示するための最小サイズを指定する |
UILayoutFittingExpandedSize | コンテンツを表示するための最大サイズを指定する |
##Content Compression Resistance Priority
固有サイズより小さなサイズの制約が設定されたときに、サイズを決定するために利用される優先度。
デフォルトでは高さ、幅ともに750が設定されている。
[私見]固有サイズより小さなサイズの制約が有効になるとコンテンツがすべて表示されない可能性があるので、固有サイズ自体の制約は高めの優先度になっていると考えられる。
##Content Hugging Priority
固有サイズより大きなサイズの制約が設定されたときに、サイズを決定するために利用される優先度
デフォルトでは高さ、幅ともに251が設定されている。
[私見]固有サイズより大きなサイズの制約は、デザイン上の意味を持つ場合もあると思うので、固有サイズ自体の制約は低めの優先度になっていると考えられる。
##システム定義の優先度、IBの作業領域
enum {
UILayoutPriorityRequired = 1000,
UILayoutPriorityDefaultHigh = 750,
UILayoutPriorityDefaultLow = 250, // Content Hugging Priority には251が設定
UILayoutPriorityFittingSizeLevel = 50,
};
typedef float UILayoutPriority;