そこで、NimbusのNINetworkImageViewオブジェクトを使用して写真サーバーから画像をプルするための呼び出しを行っています。返されたオブジェクトが有効かどうかを確認する必要があります。有効でない場合は、メソッド
- (void) networkImageView:(NINetworkImageView *) imageView didLoadImage:(UIImage *) image {
透過的なUIImageオブジェクトを返します。この方法では、ピクセルがクリアなjpg画像が返されるため、問題が発生していると思います。私は次のチェックを試みて、画像が運がなく透明であるかどうかを確認しました(以下のすべての試みは上記の方法の範囲内で行われます):
失敗した試み1:
UIImageView *tempView = [[UIImageView alloc] initWithImage:image];
if(tempView.alpha != 0.0f)
{
//the image is a valid (nonclear) image
}
else
{
//the image is invalid (clear)
}
失敗した試み2:
CGImageRef cgref = [[UIImage alloc] CGImage];
CIImage *cim = [[UIImage alloc] CIImage];
if(!([image CIImage] == cim && [image CGImage] == cgref))
{
//the image is a valid (nonclear) image
}
else
{
//the image is invalid (clear)
}
失敗した試み3:
if(image)
{
//the image is a valid (nonclear) image
}
else
{
//the image is invalid (clear)
}
失敗した試み4:
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if(cim == nil && cgref == NULL)
{
//the image is invalid (clear)
}
else
{
//the image is a valid (nonclear) image
}
編集
シミュレーターから「無効な画像」を引き出すことができました。networkimageviewメソッドは、完全に白いjpg画像を返します。しかし、シミュレーターでは、それは明確な画像として表示されます、考え?