GeometryReader — это контейнерное представление в SwiftUI, которое предоставляет своим дочерним представлениям доступный размер и координатное пространство родителя через объект GeometryProxy.
GeometryProxy?GeometryProxy предоставляет доступ к:
size — доступной ширине и высоте, которую предлагает родительframe(in:) — фрейму представления относительно координатного пространстваsafeAreaInsets — текущим отступам безопасной областиИспользуй GeometryReader, когда твой лейаут зависит от информации о размере во время выполнения, например:
GeometryReader { proxy in
Rectangle()
.frame(width: proxy.size.width * 0.5)
}
GeometryReader по умолчанию растягивается, чтобы заполнить всё доступное пространство, что можетломать лейаут, если использовать его бездумно.frame(), .overlay() или лейаут-контейнеров, таких как HStack и VStackframe(in:), чтобы избежать неожиданных результатов позиционированияИспользуй GeometryReader только когда более простых инструментов лейаута недостаточно. Ограничивай его конкретным представлением, которому нужна информация о размере, вместо того чтобы оборачивать им большие части иерархии представлений — это сохранит твой лейаут предсказуемым и производительным.
GeometryReader предоставляет своим дочерним представлениям доступ к доступному размеру и координатному пространству родителя через объект GeometryProxy.
Новый — ещё не проверен сообществом
Вы