Как получить кадры (размер и координаты) для разных видов в SwiftUI? - PullRequest
0 голосов
/ 20 апреля 2020

Мне нужно получить кадры для нескольких представлений внутри VStack. Я думаю, используя GeometryReader, но он возвращает необходимые параметры только для родителя. Как я могу получить эти параметры для каждого вида на скриншоте ниже?

Макет Мне нужно получить кадры для

1 Ответ

0 голосов
/ 21 апреля 2020

Мы можем использовать GeometryReader внутри оверлея на необходимых видах и сохранять необходимые кадры в массиве или в виде отдельных переменных.

ForEach(0..<n) { number in
  YourView()
    .overlay(
      GeometryReader { geometry in
        Color.clear
          .onAppear {
            self.buttonFrames[number] = geometry.frame(in: .global)
          }
        }
    )
}

Для получения дополнительной информации вы можете проверить этот источник: https://github.com/twostraws/SwiftOnSundays/blob/master/020%20Switcharoo/Project/Switcharoo/ContentView.swift и полный учебник: https://www.youtube.com/watch?v=ffV_fYcFoX0

...