我必须在固定大小区域显示图像,如100 * 100像素,但实际图像尺寸太大(如400 * 450),问题是当我在100 * 100像素图像视图中设置大图像然后滚动产生抖动细胞
答案 0 :(得分:1)
我使用这一行代码来创建一个缩放的新UIImage。设置比例和方向参数以达到您想要的效果。第一行代码只是抓取图像。
// grab the original image
UIImage *originalImage = [UIImage imageNamed:@"myImage.png"];
// scaling set to 2.0 makes the image 1/2 the size.
UIImage *scaledImage =
[UIImage imageWithCGImage:[originalImage CGImage]
scale:(originalImage.scale * 2.0)
orientation:(originalImage.imageOrientation)];
最简单的方法是设置UIImageView的框架并将contentMode设置为其中一个调整大小选项。
或者,如果您确实需要调整图像大小,则可以使用此实用程序方法:
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
//UIGraphicsBeginImageContext(newSize);
// In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
// Pass 1.0 to force exact pixel size.
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}