具有透明背景的PNG在较旧的iPad上显示黑色

时间:2013-01-31 21:02:01

标签: ios ipad png

我的iPad应用中有一个错误让我发疯。该应用程序允许用户将剪贴画放到页面上。剪贴画图像是具有透明背景的PNG。我创建一个简单的UIImageView并将opaque设置为NO。在我的所有测试中,一切都很完美。然而,看起来那些拥有较旧iPad(可能是iPad 2?)的人都有黑色背景。它似乎不是iOS的问题,但它似乎是iPad的问题。

网站上你可以看到90-95%的剪贴画图片完全没问题,而5-10%的人有黑色背景:http://www.printpad.com

我用于UIImageView的代码:

UIImageView *imageView = [[UIImageView alloc] initWithImage:resized imageBorderColor:borderColor imageBorderWidth:borderWidth];
[imageView.layer setOpaque:NO];
imageView.opaque = NO;
imageView.frame = rect;
[view addSubview:imageView];

我真的希望有人在那里遇到过这个并且可以提供帮助,因为我甚至无法想到如何调试或任何事情。感谢!!!!!

编辑:将原始图像下载到Documents目录中,然后调整大小如下:

UIImage *image = [UIImage imageWithContentsOfFile:path];
CGSize newSize = [MyUtility getNewSize:image.size maximumSize:CGSizeMake(200, 200)];
UIImage *resized = [UIImage imageWithImage:image scaledToSize:newSize];

这是imageWithImage类别:

+ (UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
    [self beginImageContextWithSize:newSize];
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    [self endImageContext];
    return newImage;
}

1 个答案:

答案 0 :(得分:0)

与答案一样:https://stackoverflow.com/a/23355129/1751266

您是否有可能将图像创建为不透明而不是透明?如果你正在使用UIGraphicsBeginImageContextWithOptions或类似的,那么第二个参数应该是NO。