图像尺寸太大时 Tableview 单元格抖动

Tableview cell shaking when image size is too large

我必须在 100*100 像素等固定尺寸区域显示图像,但实际图像尺寸太大(如 400*450),问题是当我在 100*100 像素图像视图中设置大图像然后滚动产生细胞摇动

我使用这一行代码创建了一个缩放的新 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;
}