concentricCornerRadii(in:)
Returns the concentric corner radii for the specified frame relative to the container shape.
Declaration
func concentricCornerRadii(in frame: CGRect) -> RectangleCornerRadii?Parameters
- frame:
The frame in the view’s local coordinate space for which to calculate the concentric corner radii.
Return Value
The resolved corner radii, or nil if no container shape is set or the shape does not provide sufficient corner info.
Discussion
Concentric corners share the same center point as the container’s corners. The radius for each corner is calculated as the container’s corner radius minus the distance from the frame’s corner to the container’s corner.
Unlike ConcentricRectangle, which calculates and draws the shape, this function only returns the calculated radii. Use this when you need corner radii for a subregion of the view, or when you want to use the values for custom drawing, animations, or other purposes:
GeometryReader { geometry in
Canvas { context, size in
let rect = CGRect(x: 10, y: 10, width: 80, height: 80)
if let radii = geometry.concentricCornerRadii(in: rect) {
let path = Path(roundedRect: rect, cornerRadii: radii)
context.fill(path, with: .color(.blue))
}
}
}
.containerShape(.rect(cornerRadius: 48))