1

我的 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;
}
4

1 回答 1

0

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

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

于 2014-11-25T20:30:07.563 回答