ユーザーがボタンを押すと一連の線が画面に描画され、ユーザーはこれらの線がリアルタイムで描画されるのを見ることができる単純なアプリを作成しています (ほとんどアニメーションのように)。
私のコードは次のようになります(簡略化されています):
UIGraphicsBeginImageContext(CGSizeMake(300,300));
CGContextRef context = UIGraphicsGetCurrentContext();
for (int i = 0; i < 100; i++ ) {
CGContextMoveToPoint(context, i, i);
CGContextAddLineToPoint(context, i+20, i+20);
CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]);
CGContextStrokePath(context);
}
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
私の問題は次のとおりです。
1) ユーザーがボタンを押すとすぐに、UIThread は描画が完了するまでブロックします。
2) 一度に 1 つずつ画面に描画される線を取得できません - UIImage をループ内で直接設定しようとし、ループ内でレイヤー コンテンツを設定しようとしました。
これらの問題を回避するにはどうすればよいですか?