tsonobe1 / SwiftUIPlayGround

0 stars 0 forks source link

.alignmentGuideのViewDimensions #3

Open tsonobe1 opened 2 years ago

tsonobe1 commented 2 years ago

alignmentGuideって?

Viewに.alignmentGuideモディファイアを使うことで、揃えを微調整できる

func alignmentGuide(_ g: VerticalAlignment, computeValue: @escaping (ViewDimensions) -> CGFloat) -> some View

_ gにVerticalかHorizontalかを指定して、その値がコンテナのAlignmentと一致している場合、 computeValueに指定した任意の値により、コンテナ内の個々のViewの位置を調整することができる。

_ gについて

_ gがHorizontalなら、原点が上端辺からになる。 _ gがVerticalなら、原点が左端辺からになる。

computeValueについて

調整する値を指定する。 指定方法は2種類ある

  1. 実数をハードコードする
  2. ViewDimensions型のparameterを利用して、計算処理で値を指定する

ViewDimensionsから取得できる値とは?

定義

public struct ViewDimensions {
    public var width: CGFloat { get }
    public var height: CGFloat { get }
    public subscript(guide: HorizontalAlignment) -> CGFloat { get }
    public subscript(guide: VerticalAlignment) -> CGFloat { get }
    public subscript(explicit guide: HorizontalAlignment) -> CGFloat? { get }
    public subscript(explicit guide: VerticalAlignment) -> CGFloat? { get }
}