Сделать UIImage из UIView, но не в основной теме - PullRequest
4 голосов
/ 07 февраля 2011

Я использую известный шаблон для создания UIImage из UIView:

+ (UIImage *) imageWithView:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, [[UIScreen mainScreen] scale]);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;
}

Теперь моя проблема в том, что у меня очень сложное представление с большим количеством подпредставленийпоэтому процесс преобразования занимает около 3 + (!!!) секунд.

Я попытался разветвить его в другой поток, работающий в фоновом режиме, и он действительно улучшил производительность.

Единственная проблема в том, что, насколько я помню, не разрешается делать вещи, связанные с пользовательским интерфейсом, не в главном потоке.

Я ошибаюсь, и это совершенно нормально?Или - если я прав - что можно сделать, чтобы улучшить производительность?Есть ли другой метод, который я могу использовать в другом потоке, но работает ли он так же?

Большое спасибо!

1 Ответ

0 голосов
/ 10 марта 2011

В итоге я просто сделал это в другой теме, и все работает нормально.

...