One Logo Pool Ball
SwiftUICore · IOS API REFERENCE

UnitPoint

struct · iOS 13.0+ · SDK 27.1

@frozen struct UnitPoint

A normalized 2D point in a view's coordinate space. Use a unit point to represent a location in a view without having to know the view's rendered size. The point stores a value in each dimension that indicates the fraction of the view's size in that dimension --- measured from the view's origin --- where the point appears. For example, you can create a unit point that represents the center of any view by using the value `0.5` for each dimension: let unitPoint = UnitPoint(x: 0.5, y: 0.5) To project the unit point into the rendered view's coordinate space, multiply each component of the unit point with the corresponding component of the view's size: let projectedPoint = CGPoint( x: unitPoint.x * size.width, y: unitPoint.y * size.height ) You can perform this calculation yourself if you happen to know a view's size, or if you want to use the unit point for some custom purpose, but SwiftUI typically does this for you to carry out operations that you request, like when you: * Transform a shape using a shape modifier. For example, to rotate a shape with ``Shape/rotation(_:anchor:)``, you indicate an anchor point that you want to rotate the shape around. * Override the alignment of the view in a ``Grid`` cell using the ``View/gridCellAnchor(_:)`` view modifier. The grid aligns the projection of a unit point onto the view with the projection of the same unit point onto the cell. * Create a gradient that has a center, or start and stop points, relative to the shape that you are styling. See the gradient methods in ``ShapeStyle``. You can create custom unit points with explicit values, like the example above, or you can use one of the built-in unit points that SwiftUI provides, like ``zero``, ``center``, or ``topTrailing``. The built-in values correspond to the alignment positions of the similarly named, built-in ``Alignment`` types. > Note: A unit point with one or more components outside the range `[0, 1]` projects to a point outside of the view. ### Layout direction When a person configures their device to use a left-to-right language like English, the system places the view's origin in its top-left corner, with positive x toward the right and positive y toward the bottom of the view. In a right-to-left environment, the origin moves to the upper-right corner, and the positive x direction changes to be toward the left. You don't typically need to do anything to handle this change, because SwiftUI applies the change to all aspects of the system. For example, see the discussion about layout direction in ``HorizontalAlignment``. It’s important to test your app for the different locales that you distribute your app in. For more information about the localization process, see <doc://com.apple.documentation/documentation/Xcode/localization>.

Members (18)

get · iOS 13.0+

topLeading

TypeScript
static get topLeading(): UnitPoint
Swift declaration
static let topLeading: UnitPoint

A point that's in the top, leading corner of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/topLeading`` alignment. The leading edge appears on the left in a left-to-right language environment and on the right in a right-to-left environment.

get · iOS 13.0+

topTrailing

TypeScript
static get topTrailing(): UnitPoint
Swift declaration
static let topTrailing: UnitPoint

A point that's in the top, trailing corner of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/topTrailing`` alignment. The trailing edge appears on the right in a left-to-right language environment and on the left in a right-to-left environment.

get · iOS 13.0+

bottomLeading

TypeScript
static get bottomLeading(): UnitPoint
Swift declaration
static let bottomLeading: UnitPoint

A point that's in the bottom, leading corner of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/bottomLeading`` alignment. The leading edge appears on the left in a left-to-right language environment and on the right in a right-to-left environment.

get · iOS 13.0+

animatableData

TypeScript
get animatableData(): AnimatablePair<number, number>
Swift declaration
var animatableData: UnitPoint.AnimatableData { get set }

The data to animate. SwiftUI reads this property to capture the current vector representation of the animatable state, and writes it back on each animation frame with an interpolated value. The default implementation returns ``EmptyAnimatableData``, meaning nothing is animated. Use the ``Animatable()`` macro to synthesize this property automatically. Implement it by hand only when you need custom interpolation logic such as clamping, normalization, or mapping to a derived value.

set · iOS 13.0+

animatableData

TypeScript
set animatableData(value: AnimatablePair<number, number>)
Swift declaration
var animatableData: UnitPoint.AnimatableData { get set }

The data to animate. SwiftUI reads this property to capture the current vector representation of the animatable state, and writes it back on each animation frame with an interpolated value. The default implementation returns ``EmptyAnimatableData``, meaning nothing is animated. Use the ``Animatable()`` macro to synthesize this property automatically. Implement it by hand only when you need custom interpolation logic such as clamping, normalization, or mapping to a derived value.

get · iOS 13.0+

bottomTrailing

TypeScript
static get bottomTrailing(): UnitPoint
Swift declaration
static let bottomTrailing: UnitPoint

A point that's in the bottom, trailing corner of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/bottomTrailing`` alignment. The trailing edge appears on the right in a left-to-right language environment and on the left in a right-to-left environment.

get · iOS 13.0+

x

TypeScript
get x(): number
Swift declaration
var x: CGFloat

The normalized distance from the origin to the point in the horizontal direction.

set · iOS 13.0+

x

TypeScript
set x(value: number)
Swift declaration
var x: CGFloat

The normalized distance from the origin to the point in the horizontal direction.

init · iOS 13.0+

init

TypeScript
static initXY(x: number, y: number): UnitPoint
Swift declaration
init(x: CGFloat, y: CGFloat)

Creates a unit point with the specified horizontal and vertical offsets. Values outside the range `[0, 1]` project to points outside of a view. - Parameters: - x: The normalized distance from the origin to the point in the horizontal direction. - y: The normalized distance from the origin to the point in the vertical direction.

get · iOS 13.0+

y

TypeScript
get y(): number
Swift declaration
var y: CGFloat

The normalized distance from the origin to the point in the vertical dimension.

set · iOS 13.0+

y

TypeScript
set y(value: number)
Swift declaration
var y: CGFloat

The normalized distance from the origin to the point in the vertical dimension.

get · iOS 13.0+

top

TypeScript
static get top(): UnitPoint
Swift declaration
static let top: UnitPoint

A point that's centered horizontally on the top edge of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/top`` alignment.

get · iOS 13.0+

zero

TypeScript
static get zero(): UnitPoint
Swift declaration
static let zero: UnitPoint

The origin of a view. A view's origin appears in the top-left corner in a left-to-right language environment, with positive x toward the right. It appears in the top-right corner in a right-to-left language, with positive x toward the left. Positive y is always toward the bottom of the view.

get · iOS 13.0+

bottom

TypeScript
static get bottom(): UnitPoint
Swift declaration
static let bottom: UnitPoint

A point that's centered horizontally on the bottom edge of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/bottom`` alignment.

get · iOS 13.0+

center

TypeScript
static get center(): UnitPoint
Swift declaration
static let center: UnitPoint

A point that's centered in a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/center`` alignment.

get · iOS 13.0+

leading

TypeScript
static get leading(): UnitPoint
Swift declaration
static let leading: UnitPoint

A point that's centered vertically on the leading edge of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/leading`` alignment. The leading edge appears on the left in a left-to-right language environment and on the right in a right-to-left environment.

get · iOS 13.0+

trailing

TypeScript
static get trailing(): UnitPoint
Swift declaration
static let trailing: UnitPoint

A point that's centered vertically on the trailing edge of a view. This point occupies the position where the horizontal and vertical alignment guides intersect for ``Alignment/trailing`` alignment. The trailing edge appears on the right in a left-to-right language environment and on the left in a right-to-left environment.

init · iOS 13.0+

init

TypeScript
static init(): UnitPoint
Swift declaration
init()

Creates a unit point at the origin. A view's origin appears in the top-left corner in a left-to-right language environment, with positive x toward the right. It appears in the top-right corner in a right-to-left language, with positive x toward the left. Positive y is always toward the bottom of the view.

Skipped declarations

No declarations were skipped in this snapshot.

All SwiftUICore types →