GeometryReader
Skip support for SwiftUI.GeometryReader.
The following example screens and source code is from SkipUI’s
Showcase sample app
GeometryReaderPlayground.swift
import SwiftUI
struct GeometryReaderPlayground: View {
var body: some View {
ScrollView {
VStack(spacing: 16) {
Text("Size").bold()
GeometryReader { proxy in
HStack(spacing: 0) {
Text("1/3")
.font(.largeTitle)
.frame(width: proxy.size.width * 0.33)
.background(.blue)
Text("2/3")
.font(.largeTitle)
.frame(width: proxy.size.width * 0.67)
.background(.red)
}
}
.frame(height: 50)
Text("Frame").bold()
GeometryReader { proxy in
VStack {
Text("Local frame: \(string(for: proxy.frame(in: .local)))")
Text("Global frame: \(string(for: proxy.frame(in: .global)))")
}
}
.background(.yellow)
.padding()
.border(.blue)
.frame(height: 100)
}
.padding()
}
.toolbar {
PlaygroundSourceLink(file: "GeometryReaderPlayground.swift")
}
}
private func string(for rect: CGRect) -> String {
return "(\(Int(rect.minX)), \(Int(rect.minY)), \(Int(rect.width)), \(Int(rect.height)))"
}
}