2013-01-31 148 views
1

我的iPad應用程序中有一個錯誤令我瘋狂。該應用程序允許用戶將剪貼畫放到頁面上。剪貼畫圖像是具有透明背景的PNG。我創建了一個簡單的UIImageView並將不透明設置爲NO。在我所有的測試中,一切都很完美。然而,看起來那些擁有較舊iPad的人(或許是iPad 2?)這些圖像有黑色背景。它似乎不是iOS的問題,但它似乎與iPad的問題。PNG與透明背景在較舊的iPads上顯示黑色

網站,你可以看到剪貼畫的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]; 

我真的很希望有人遇到過這個問題,並且可以提供幫助,因爲我甚至無法想到如何進行調試或任何操作。謝謝!!!!!

編輯:原始圖像被下載到文件的目錄,然後將被重新調整如下:

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; 
} 
+0

確定它不是操作系統版本?較舊的iPad可能會運行較舊的iOS。 (如果它確實是特定於硬件的,它可能與硬件加速功能有關,儘管看起來不太可能)。 – nneonneo

+0

顯示創建「調整大小」的代碼。 –

+0

這很可能是PNG轉換爲JPEG的問題。注意'UIImage',如果你不能控制引擎蓋下發生了什麼,它可能更喜歡用jpeg圖像表示。您還應該檢查並更新您的問題,並提供有關哪些iPad型號和哪些iOS版本的更好信息。 +正如尼古拉所說的,向我們展示從'raw'png到'resized'圖像的代碼路徑。 – foundry

回答