Код: Выделить всё
import SwiftUI
@main
struct KeyboardLayoutProblemApp: App {
var body: some Scene {
WindowGroup {
iOSTabView()
}
}
}
struct iOSTabView: View {
var body: some View {
TabView {
GameView()
.tabItem {
Label("Play", systemImage: "gamecontroller.fill")
}
}
}
}
struct GameView: View {
var body: some View {
VStack {
Text("Play")
Spacer()
KeyboardView()
}
.padding()
}
}
struct KeyboardView: View {
let firstRowLetters = "qwertyuiop".map { $0 }
let secondRowLetters = "asdfghjkl".map { $0 }
let thirdRowLetters = "zxcvbnm".map { $0 }
var body: some View {
VStack {
HStack {
ForEach(firstRowLetters, id: \.self) {
LetterKeyView(character: $0)
}
}
HStack {
ForEach(secondRowLetters, id: \.self) {
LetterKeyView(character: $0)
}
}
HStack {
ForEach(thirdRowLetters, id: \.self) {
LetterKeyView(character: $0)
}
}
}
.padding()
}
}
struct LetterKeyView: View {
let character: Character
var width: CGFloat { height*0.8 }
@ScaledMetric(relativeTo: .title3) private var height = 35
var body: some View {
Button {
print("\(character) pressed")
} label: {
Text(String(character).capitalized)
.font(.title3)
.frame(width: self.width, height: self.height)
.background {
RoundedRectangle(cornerRadius: min(width, height)/4, style: .continuous)
.stroke(.gray)
}
}
.buttonStyle(PlainButtonStyle())
}
}
#Preview {
iOSTabView()
}
Код: Выделить всё
GameView
Вопрос
Как мне сделать Gameview быть в качестве его родителей, как его родительский вид? /> то, что я пробовал, и не работал < /strong> < /p>
Код: Выделить всё
GameView()
.frame(maxWidth: .infinity, maxHeight: .infinity)
< /code>
GeometryReader { geometry in
GameView()
.frame(maxWidth: geometry.size.width, maxHeight: geometry.size.height)
}
< /code>
GameView()
.clipped()
< /code>
GameView()
.layoutPriority(1)
< /code>
GameView()
.scaledToFit()
< /code>
GameView()
.minimumScaleFactor(0.01)
< /code>
GameView()
.scaledToFill()
.minimumScaleFactor(0.5)
Подробнее здесь: https://stackoverflow.com/questions/796 ... its-parent