es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué las swipeActions no funcionan en una lista de estilo de barra lateral?

Estoy tratando de agregar SwipeActions a una lista en SwiftUI. Está funcionando como se espera, pero tan pronto como le doy a la lista el estilo de lista .sidebar, deja de funcionar. Aquí hay un ejemplo mínimo de código que muestra este problema (se puede usar en Swift Playgrounds):

import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    let strings = ["hello", "there"]

    var body: some View {
        List(strings, id: \.self) { str in
            Text(str)
                .swipeActions {
                    Button { print("clicked on swipe action") } label: { Label("Delete", systemImage: "trash") }
                }
        }
        .listStyle(.sidebar) // <-- sin aplicar esto, las swipeActions funcionan.
    }
}

PlaygroundPage.current.setLiveView(ContentView())

Busqué en Google y Stackoverflow pero no encontré ninguna respuesta. Parece muy inintuitivo que diferentes “estilos” también tengan diferentes comportamientos. ¿Me estoy perdiendo algo? Envolver el Text en un bucle ForEach tampoco cambia nada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el estilo de lista .sidebar en SwiftUI está impidiendo que las acciones de deslizar (swipeActions) funcionen correctamente en la lista. Este comportamiento se puede observar en el ejemplo de código proporcionado. No está claro por qué está sucediendo esto y podría valer la pena informarlo como un error a Apple.

    Una posible solución alternativa es utilizar un estilo de lista diferente o evitar utilizar acciones de deslizar por completo cuando se utiliza el estilo de lista .sidebar. También vale la pena destacar que envolver el Text en un bucle ForEach no cambia este comportamiento.

    En general, es importante tener en cuenta el estilo de lista específico que se está utilizando al implementar acciones de deslizar en una Lista de SwiftUI.

Comments are closed.