Girar image en UIImageView

¿Es posible girar solo la image en UIImageView? Estoy buscando información al respecto, pero solo encontré información sobre cómo rotar UIImageVeiw.

Puede rotar la image con el siguiente código. Tenga en count que esto utiliza un CGImageRef que puede get de un UIImage vía

CGImageRef imageRef = [self CGImageRotatedByAngle:[image CGImage] angle:30]; 

Una vez que obtenga la image girada, puede configurar la image de ImageView en su nueva image rotada como esta:

 UIImage* img = [UIImage imageWithCGImage: imageRef]; myImageView.image = img; 

aquí hay un método que rotará la imageRef:

 - (CGImageRef)CGImageRotatedByAngle:(CGImageRef)imgRef angle:(CGFloat)angle { CGFloat angleInRadians = angle * (M_PI / 180); CGFloat width = CGImageGetWidth(imgRef); CGFloat height = CGImageGetHeight(imgRef); CGRect imgRect = CGRectMake(0, 0, width, height); CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians); CGRect rotatedRect = CGRectApplyAffineTransform(imgRect, transform); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef bmContext = CGBitmapContextCreate(NULL, rotatedRect.size.width, rotatedRect.size.height, 8, 0, colorSpace, kCGImageAlphaPremultipliedFirst); CGContextSetAllowsAntialiasing(bmContext, YES); CGContextSetShouldAntialias(bmContext, YES); CGContextSetInterpolationQuality(bmContext, kCGInterpolationHigh); CGColorSpaceRelease(colorSpace); CGContextTranslateCTM(bmContext, +(rotatedRect.size.width/2), +(rotatedRect.size.height/2)); CGContextRotateCTM(bmContext, angleInRadians); CGContextTranslateCTM(bmContext, -(rotatedRect.size.width/2), -(rotatedRect.size.height/2)); CGContextDrawImage(bmContext, CGRectMake(0, 0, rotatedRect.size.width, rotatedRect.size.height), imgRef); CGImageRef rotatedImage = CGBitmapContextCreateImage(bmContext); CFRelease(bmContext); [(id)rotatedImage autorelease]; return rotatedImage; } 

Echa un vistazo a la rotation de la capa de ImageView. Deberá importar la biblioteca QuartzCore para que sea accesible.

 myImageView.layer.transform = CGAffineTransformMakeRotation (1.5); 

Intenta esto, me funciona:

 [UIView beginAnimations:nil context:nil]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; [UIView setAnimationRepeatCount:10]; myImgView.transform = CGAffineTransformMakeRotation(M_PI); [UIView commitAnimations]; 

¡Buena suerte!

El siguiente código funciona bien con Swift:

 let img = UIImage(CGImage: self.imageView.image!.CGImage, scale: 1.0, orientation: UIImageOrientation.Right) self.imageView.image = img self.imageView.setNeedsLayout() 

Si necesita rotar / voltear una image para fines de localización, puede usar lo siguiente: imageView.image = imageView.image?.imageFlippedForRightToLeftLayoutDirection()