Kontextmenü für Fotoaktionen
Beschreibung
EinDiese einfacheView zeigt ein Bildsymbol, das beim langen Drücken ein Kontextmenü mit denhäufigen entsprechendenAktionen Buttonsanzeigt. undDer denNutzer kann z. B. eine Teilen oder Löschen Aktion dahinter.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 {
Button(action: {
// ActionShare foraction sharingplaceholder
theButton photo{
// 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(action:role: .destructive) {
//showDeleteAlert Action= for deleting the phototrue
}) 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()
}