Измерить размер отрисовки представления SwiftUI? - PullRequest
1 голос
/ 14 июня 2019

Есть ли способ измерить вычисленный размер представления после того, как SwiftUI запустит фазу визуализации представления? Например, с учетом следующего вида:

struct Foo : View {
    var body: some View {
        Text("Hello World!")
            .font(.title)
            .foregroundColor(.white)
            .padding()
            .background(Color.red)
    }
}

При выбранном виде вычисленный размер отображается на холсте предварительного просмотра в левом нижнем углу. Кто-нибудь знает способ получить доступ к этому размеру в коде?

enter image description here

1 Ответ

0 голосов
/ 14 июня 2019

Вот ужасный способ, которым я придумал, чтобы достичь этого:

struct GeometryPrintingView: View {

    var body: some View {
        GeometryReader { geometry in
            return self.makeViewAndPrint(geometry: geometry)
        }
    }

    func makeViewAndPrint(geometry: GeometryProxy) -> Text {
        print(geometry.size)
        return Text("")
    }
}

И обновленная Foo версия:

struct Foo : View {
    var body: some View {
        Text("Hello World!")
            .font(.title)
            .foregroundColor(.white)
            .padding()
            .background(Color.red)
            .overlay(GeometryPrintingView())
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...