Kontextmenü für Fotoaktionen
Beschreibung
Diese View zeigt ein Bildsymbol, das beim langen Drücken ein Kontextmenü mit häufigen Aktionen anzeigt. Der Nutzer kann z. B. eine Teilen oder Löschen Aktion auslösen. Die Umsetzung nutzt das native contextMenu
in SwiftUI für sekundäre Interaktionen.
🔍 Zweck
- Schneller Zugriff auf Sekundäraktionen an Medien
- Kontextmenüs in Listen oder Grids von Bildern ergänzen
- Prototyping von Datei oder Medienaktionen
- Reduzierung von UI Clutter durch Auslagerung seltener Aktionen
- Konsistentes Action Pattern mit SF Symbols
🖥️ Betriebssystem
iOS
📄 Codebeispiel
import SwiftUI
@main
struct PhotoContextMenuApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
public struct ContentView: View {
// Track whether we should show a delete confirmation
@State private var showDeleteAlert = false
public init() {}
public var body: some View {
// Placeholder image that exposes a context menu on long press
Image(systemName: "photo")
.resizable()
.scaledToFit()
.frame(width: 100, height: 100)
.accessibilityLabel("Photo")
.contextMenu {
// Share action placeholder
Button {
// Replace with real share flow if needed
print("Share tapped")
} label: {
Label("Share", systemImage: "square.and.arrow.up")
}
// Delete action triggers a confirmation alert
Button(role: .destructive) {
showDeleteAlert = true
} label: {
Label("Delete", systemImage: "trash")
}
}
// Present a simple confirmation for delete
.alert("Delete this photo?", isPresented: $showDeleteAlert) {
Button("Delete", role: .destructive) {
// Perform deletion here
print("Deleted")
}
Button("Cancel", role: .cancel) {}
}
.padding()
}
}
// Modern Swift 5.10+ preview syntax
#Preview {
ContentView()
}