UIImageView旋转而不移动图像

嗨,
我想旋转我的UIImageView而不移动整个“PNG”。 没有代码只是testing会发生什么_fanImage.transform = CGAffineTransformMakeRotation(45);

它转动,但整个图像移动。 我能做些什么,这不会发生?

你可以尝试这样的事情。你应该旋转UIImage而不是UIImageView

 - (UIImage *)imageWithTransform:(CGAffineTransform)transform { CGRect rect = CGRectMake(0, 0, self.size.height, self.size.width); CGImageRef imageRef = self.CGImage; // Build a context that's the same dimensions as the new size CGContextRef bitmap = CGBitmapContextCreate(NULL, self.size.width, self.size.height, CGImageGetBitsPerComponent(imageRef), 0, CGImageGetColorSpace(imageRef), CGImageGetBitmapInfo(imageRef)); // Rotate and/or flip the image if required by its orientation CGContextConcatCTM(bitmap, transform); // Draw into the context; this scales the image CGContextDrawImage(bitmap, rect, imageRef); // Get the resized image from the context and a UIImage CGImageRef newImageRef = CGBitmapContextCreateImage(bitmap); UIImage *newImage = [UIImage imageWithCGImage:newImageRef]; // Clean up CGContextRelease(bitmap); CGImageRelease(newImageRef); return newImage; } 

我认为你的意思是你想让你的图像视图围绕它的中心点旋转。 是对的吗? 如果是这样,那么默认情况下视图应该这样做。

您应该在Xcode中进行“翻译,缩放和旋转视图”的search,并阅读结果文章。

请注意,iOS的所有angular度均以弧度指定,而不是度数。

您的示例图像不是很有用,因为我们无法看到图像视图被绘制到的框架。 根据您从Dropbox链接的图片,几乎不可能分辨出您的图片视图正在做什么以及他们应该做什么。

完整的360度是2pi。

你应该使用

 CGFloat degrees = 45; CGFloat radians = degrees/180*M_PI; _fanImage.transform = CGAffineTransformMakeRotation(radians); 

这将确定您的代码的旋转量,但可能不是旋转位置。