¿Cómo voltear UIImage horizontalmente con Swift?

La solución para hacer UIImage flipping es con el código Objective-C:

[UIImage imageWithCGImage:img.CGImage scale:1.0 orientation: UIImageOrientationDownMirronetworking] 

Sin embargo, imageWithCGImage no está disponible en Swift! ¿Hay alguna solución para voltear la image horizontalmente con Swift? ¡Gracias!

La mayoría de los methods de fábrica se convierten a inicializadores en swift. Siempre que esté disponible, incluso si el método de class todavía está disponible, se prefieren. Puedes usar:

  init(CGImage cgImage: CGImage!, scale: CGFloat, orientation: UIImageOrientation) 

El uso se vería así:

 var image = UIImage(CGImage: img.CGImage, scale: 1.0, orientation: .DownMirronetworking) 

En Swift …. (6.3.1)

 YourUIImage.transform = CGAffineTransformMakeScale(-1, 1) 

Esto también funciona con una UIView

Cambiar el parámetro de orientación de la image en realidad no da la vuelta a la image en todos los casos. La image debe ser networkingibujada de alguna manera … Por ejemplo, así:

Swift 3

 func flipImageLeftRight(_ image: UIImage) -> UIImage? { UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale) let context = UIGraphicsGetCurrentContext()! context.translateBy(x: image.size.width, y: image.size.height) context.scaleBy(x: -image.scale, y: -image.scale) context.draw(image.cgImage!, in: CGRect(origin:CGPoint.zero, size: image.size)) let newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage } 

UIImage tiene un método para voltear la image horizontalmente. Llama a imageFlippedForRightToLeftLayoutDirection . Este método se usa para voltear la image para la orientación de derecha a izquierda. Más detalles que puedes consultar aquí Apple Doc

Con swift 3 parecería:

 let flippedImage = img.imageFlippedForRightToLeftLayoutDirection()