В конце я просто сделал это в другой ветке, и все работает нормально.
ользую известный шаблон для создания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 + (!!!) секунд.
Я попытался разветвлять его в другой поток, работающий в фоновом режиме, и это действительно улучшило производительность.
Единственная проблема заключается в том, что, насколько я помню, нельзя создавать вещи, связанные с пользовательским интерфейсом, не в основном потоке.
Я не прав, и это совершенно нормально? Или - если я прав - что можно сделать, чтобы улучшить производительность? Есть ли другой метод, который я могу использовать в другом потоке, но работает ли так же?
Большое спасибо!