ネットから画像をダウンロードして UIImageView に表示するのはかなり簡単です。ただし、これには、ユーザーに表示する前に画像を完全にダウンロードする必要があり、プログレッシブ JPEG (および PNG) 画像を完全に無効にします。
転送中に部分的にダウンロードした画像をレンダリングするにはどうすればよいですか? SDK には画像を更新するコールバック関数があると思いますが、そのような関数が見つかりません。現在のiOS SDKでそれは可能ですか?
ネットから画像をダウンロードして UIImageView に表示するのはかなり簡単です。ただし、これには、ユーザーに表示する前に画像を完全にダウンロードする必要があり、プログレッシブ JPEG (および PNG) 画像を完全に無効にします。
転送中に部分的にダウンロードした画像をレンダリングするにはどうすればよいですか? SDK には画像を更新するコールバック関数があると思いますが、そのような関数が見つかりません。現在のiOS SDKでそれは可能ですか?
この投稿には約 1 年かかりますが、誰かがそれを探している場合に備えて、あなたが探していることを行うNYXImagesKitというプロジェクトがあります。
NYXProgressiveImageView
のサブクラスであるという名前のクラスがありUIImageView
ます。
あなたがしなければならないことは次のとおりです。
NYXProgressiveImageView * imgv = [[NYXProgressiveImageView alloc] init];
imgv.frame = CGRectMake(0, 0, 320, 480);
[imgv loadImageAtURL:[NSURL URLWithString:@"http://yourimage"]];
[self.view addSubview:imgv];
[imgv release];
interlaced
また、低品質で読み込み、ダウンロードすると改善されるように、画像をそのまま保存することをお勧めします。イメージがインターレースされていない場合は、上から下にロードされます。
libjpeg-turbo の上に小さなオープンソース ライブラリがあり、プログレッシブ JPEG を簡単にデコードおよび表示できます。
let imageView = CCBufferedImageView(frame: ...)
if let url = NSURL(string: "http://example.com/yolo.jpg") {
imageView.load(url)
}
didReceiveData が呼び出されたときに UIImage を部分的にレンダリングしようとしましたか … ? …のようなもの</p>
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//TODO: add some error handling in case the image could not be created
UIImage *img=[UIImage imageWithData:data];
if (img) {
self.imageView.image=img;
}
}