結論
下記のようにして、AutoLayoutの制約などに基づいたViewのサイズを取得することができます。 ちなみにUIView.layoutFittingCompressedSize
は、UIView
のクラスプロパティで、可能な限りサイズを小さいサイズを返します。ここでは、制約内で最も小さくなるようなサイズが返されることを意味します。
view.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
また、上記のメソッド意外にもhorizontalFittingPriority
とverticalFittingPriority
を設定できるメソッドも用意されています。horizontalFittingPriority
がtargetSize
で指定した横方向の値の優先度を指定し、verticalFittingPriority
がtargetSize
で指定した縦方向の値の優先度を指定します。
@available(iOS 8.0, *) open func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize
UILayoutPriority
はenum
ではなく、struct
です。気になる方は下記のドキュメントを参照してみてください。
てな感じで本日も以上となります👀