当图像尺寸过大时,Tableview单元抖动

时间:2016-05-17 12:10:45

标签: ios tableviewcell

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

1 个答案:

答案 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;
}