调整 UIImageViews 数组中单个图像的大小

Posted

技术标签:

【中文标题】调整 UIImageViews 数组中单个图像的大小【英文标题】:Resize individual images in array of UIImageViews 【发布时间】:2011-03-22 13:14:37 【问题描述】:

在我的 iPhone 应用程序中,我需要调整数组中的一些 UIImageView 类型的图像的大小。我没有为此任务使用 Interface Builder。

我收到此错误:

左运算符赋值需要左值

使用以下代码:

CGSize newsize;

for (int i = 0; i<5; i++) 

    // ball[] is of type UIImageView *
    ball[i].center = CGPointMake(ball[i].center.x-5,ball[i].center.y);

    if (ball[i].center.x <= 36) 
    
        while(ball[i].frame.size.width>0 && ball[i].frame.size.height>0) 
        
            newsize.height =val2--;
        newsize.width =val2--;      
        ball[i].frame.size = newsize; // This line gives the error

        

       

如果这不是正确的方法,您能告诉我应该如何调整数组中的图像大小吗?

【问题讨论】:

【参考方案1】:

你的意思是,你想裁剪图像?

要调整图像大小,请尝试以下代码:

-(UIImage *)resizeImage:(UIImage *)image width:(int)width height:(int)height 

    CGImageRef imageRef = [image CGImage];
    CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);

    //if (alphaInfo == kCGImageAlphaNone)
    alphaInfo = kCGImageAlphaNoneSkipLast;

    CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), 4 * width, CGImageGetColorSpace(imageRef), alphaInfo);
    CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);
    CGImageRef ref = CGBitmapContextCreateImage(bitmap);
    UIImage *result = [UIImage imageWithCGImage:ref];

    CGContextRelease(bitmap);
    CGImageRelease(ref);

    return result;  

【讨论】:

以上是关于调整 UIImageViews 数组中单个图像的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何从数组中创建一个在一行中显示多个 UIImageViews 的类?

iOS:在数组中存储指向 UIImageViews 的链接,然后使用它们

从 ios 中的 Url 获取多个图像

iOS:在 UIImageViews 之间移动图像

图像未绑定到UIImageView

具有相同图像的多个 UIImageViews 给出不一致错误