iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

intrinsicContentSizeとは?

intrinsicContentSizeとは何者なのか?

  • AutoLayout を使用した時に表示されるある View の最低サイズ
  • UIView の iOS6 以降から使用可能なプロパティ

いつ使うのか?

通常はその View の最低サイズを読み取る際に使用されますが、AutoLayout で設定される View のサイズを動的に変更したい場合などにはサブクラス内でプロパティをオーバーライドすることで使用することもできます。

override var intrinsicContentSize: CGSize {
    let superSize = super.intrinsicContentSize
    let newSize = CGSize(superSize.width, superSize.height + 30)
    return newSize
}

こんな感じで AutoLayout で決まった高さ + 30pt したい!みたいな状況で intrinsicContentSize をしようすることで動的に高さを変更することが可能です。

公式: https://developer.apple.com/documentation/uikit/uiview/1622600-intrinsiccontentsize