Contents

alignmentGuide(_:computeValue:)

Sets the view’s horizontal alignment.

Declaration

@preconcurrency nonisolated func alignmentGuide(_ g: HorizontalAlignment, computeValue: @escaping  @Sendable (ViewDimensions) -> CGFloat) -> some View

Parameters

  • g:

    A Horizontalalignment value at which to base the offset.

  • computeValue:

    A closure that returns the offset value to apply to this view.

Mentioned in

Return Value

A view modified with respect to its horizontal alignment according to the computation performed in the method’s closure.

Discussion

Use alignmentGuide(_:computeValue:) to calculate specific offsets to reposition views in relationship to one another. You can return a constant or can use the ViewDimensions argument to the closure to calculate a return value.

In the example below, the HStack is offset by a constant of 50 points to the right of center:

VStack {
    Text("Today's Weather")
        .font(.title)
        .border(.gray)
    HStack {
        Text("🌧")
        Text("Rain & Thunderstorms")
        Text("⛈")
    }
    .alignmentGuide(HorizontalAlignment.center) { _ in  50 }
    .border(.gray)
}
.border(.gray)

Changing the alignment of one view may have effects on surrounding views. Here the offset values inside a stack and its contained views is the difference of their absolute offsets.

[Image]

See Also

Aligning views