0
我正在執行CATiledLayer
到UIScrollView
。在CATiledLayer
,我有一個函數來繪製層像這樣:如何讓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
圖形消息中異步下載數據。
因此,數據下載並繪製到屏幕後,我應該釋放UIImage?如果我放棄並回來,它仍然會被吸引到那裏? – rickharrison 2010-06-04 13:35:45
數據已被緩存,但無法控制緩存,因此您的代碼應該預期可以重複調用drawLayer:inContext – JakubKnejzlik 2014-05-21 16:21:28