DEV Community

David Goyes
David Goyes

Posted on

SwiftUI #8: Compilación condicionada por target

SwiftUI no soporta poner una condición de targetEnvironment() dentro de los modificadores de una vista, así que se puede extraer en un método.

func getClearGesture() -> some Gesture {
#if targetEnvironment(macCatalyst)
  return TapGesture(count: 2)
    .onEnded { _ in
      memory = 0.0
    }
#else
  return DragGesture(minimumDistance: 20)
    .onEnded({ _ in
      memory = 0.0
    })
#endif
}
Enter fullscreen mode Exit fullscreen mode

En el ejemplo anterior se tuvo que usar some Gesture porque el cliente del método requería un tipo de dato concreto.

En el entorno de pruebas se puede hacer lo siguiente:

#if targetEnvironment(macCatalyst)
memoryDisplay.doubleTap()
#else
memoryDisplay.swipeLeft()
#endif
Enter fullscreen mode Exit fullscreen mode

Top comments (0)