Swiftui richten benutzerdefinierte Unteransicht ausIOS

Programmierung für iOS
Anonymous
 Swiftui richten benutzerdefinierte Unteransicht aus

Post by Anonymous »

Ich habe den folgenden Swiftui -Code, in dem ich eine 16: 9 -Kamera -Vorschau im Landschaftsmodus und 9:16 -Vorschau im Porträtmodus präsentieren möchte. Ich möchte auch eine benutzerdefinierte Ausrichtung für die Subviews wie folgt:

Die Kamera-Vorschau (prototypisiert wie color.Blue In dem folgenden Code, um an der Vorderkante der sicheren Flächeneinsätze ausgerichtet zu werden (+/- wenige Punkte, wenn ich mich wünscht. Vstack/hstack Überlagerungsrahmen, um mit der Kamera -Vorschau auszurichten und zu übereinstimmen. Ich habe versucht, die Größe der beiden Ansichten mit OnGeOmetryChange zu holen, aber ich scheine eine falsche Größe für die Oberseite zu erhalten (

Code: Select all

Color.clear
) anzeigen es scheint. Die zurückgegebene Größe wird transponiert. < /P>

Code: Select all

struct CameraUI: View {
@Environment(\.verticalSizeClass) var verticalSizeClass
@Environment(\.horizontalSizeClass) var horizontalSizeClass

@State var cameraViewSize:CGSize = CGSize.zero
@State var viewSize:CGSize = CGSize.zero

var body: some View {
Color.clear
.ignoresSafeArea()
.onGeometryChange(for: CGSize.self) { proxy in
proxy.size
} action: { newValue in
viewSize = newValue
}
.background {
Color.blue
.ignoresSafeArea()
.aspectRatio(verticalSizeClass == .regular ? 9.0/16.0 : 16.0/9.0, contentMode: .fit)
.offset(x:verticalSizeClass == .compact ? -(viewSize.width - cameraViewSize.width)/2 : 0)
//Need to inset with leading edge of Safe Area
.onGeometryChange(for: CGSize.self) { proxy in
proxy.size
} action: { newValue in
cameraViewSize = newValue
print("View size \(viewSize.width), Camera View size \(cameraViewSize.width)")
}
}
.persistentSystemOverlays(.hidden)
.overlay {
/* Need to have this VStack/HStack aligned with the Color.blue view */
VStack {
Spacer()
HStack {
Button("Button1") {

}

Spacer()

Button("Button2") {

}
}
}
}
}
}

#Preview {
CameraUI()
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post