Я создаю простое приложение, в котором, когда пользователь нажимает кнопку, на экране будет отображаться серия линий, и пользователь сможет видеть эти линии в режиме реального времени (почти как анимация).
Мой код выглядит примерно так (был упрощен):
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) Я не могу заставить линии рисоваться на экране по одной - я пытался установить UIImage непосредственно внутри цикла, а также попытался установить содержимое слоя внутри цикла.
Как обойти эти проблемы?