を に実装しCATiledLayer
ていUIScrollView
ます。にはCATiledLayer
、次のようにレイヤーを描画する関数があります。
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
CGContextTranslateCTM(ctx, 0.0f, 0.0f);
CGContextScaleCTM(ctx, 1.0f, -1.0f);
CGRect box = CGContextGetClipBoundingBox(ctx);
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"urlhere"]];
UIImage *image = [[UIImage alloc] initWithData:data];
CGContextDrawImage(ctx, box, [image CGImage]);
[image release];
[data release];
}
問題は、各タイルがダウンロードされているときに、他のタイルのダウンロードがブロックされることです。これらのタイルが並行してダウンロードされることを強く望みます。特に、私が制御できない別の UI 要素のダウンロードをブロックします。
CATiledLayer
基本的に、描画メッセージでデータを非同期にダウンロードする方法を知る必要があるだけです。