iOSエンジニアのつぶやき

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

【Swift】Viewの制約に基づいたサイズを取得

結論

下記のようにして、AutoLayoutの制約などに基づいたViewのサイズを取得することができます。 ちなみにUIView.layoutFittingCompressedSizeは、UIViewのクラスプロパティで、可能な限りサイズを小さいサイズを返します。ここでは、制約内で最も小さくなるようなサイズが返されることを意味します。

view.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)

また、上記のメソッド意外にもhorizontalFittingPriorityverticalFittingPriorityを設定できるメソッドも用意されています。horizontalFittingPrioritytargetSizeで指定した横方向の値の優先度を指定し、verticalFittingPrioritytargetSizeで指定した縦方向の値の優先度を指定します。

    @available(iOS 8.0, *)
    open func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize

UILayoutPriorityenum ではなく、structです。気になる方は下記のドキュメントを参照してみてください。

developer.apple.com

てな感じで本日も以上となります👀

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com