たくさんのUIButtonを備えたUITableViewがあります。ボタンに表示される大きなローカル画像。このコードを使用して、大きな画像の非同期(UIButtonのカテゴリ)を読み込みます。
- (void)asyncLoadImageAtPath:(NSString *)fullPath forState:(UIControlState)state
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIImage *image = [[UIImage alloc] initWithContentsOfFile:fullPath];
dispatch_async(dispatch_get_main_queue(), ^{
[self setImage:image forState:state];
});
});
}
initWithContentsOfFile:他のスレッドで実行され、メインスレッドでsetImage:forState:によってUIを更新します。ただし、setImage:forState:は時間がかかりすぎるため、UITableViewのスクロールがスムーズになりません。
では、UIImageViewまたはUIButtonのUI非同期を更新する方法はありますか?
特別な感謝!