iOS7 renderInContext не захватывает изображение png с альфа-каналом

Я работаю над приложением камеры, которое накладывает изображения на сделанное изображение. Он отлично работает на iOS5 и iOS6, но на iOS7 изображения с альфа-каналом не могут быть правильно наложены друг на друга. Наложенные изображения становятся полностью непрозрачными.

UIGraphicsBeginImageContextWithOptions( CGSizeMake( width, height ), NO, 0 );
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
NSData *data  = UIImagePNGRepresentation(UIGraphicsGetImageFromCurrentImageContext());
UIImage* viewImage = [UIImage imageWithData:data];
UIGraphicsEndImageContext();

Кажется, это та же проблема, что и эта, но в моем случае это решение не сработало. CALayer renderInContext iOS7

Я подтвердил, что в iOS7 drawViewHierarchyInRect работает, но для сборки этого нового метода требуется Xcode 5. Есть ли более простой обходной путь?


person mmrn    schedule 05.11.2013    source источник
comment
Вы пытались вызвать drawViewHierarchyInRect через NSInvocation в Xcode 4, а не прямым вызовом? Вроде должно работать.   -  person EricS    schedule 05.11.2013
comment
Я пытался, но @selector(drawViewHierarchyInRect:afterScreenUpdates:) кажется нулевым без iOS7 SDK, поэтому я не мог вызвать метод.   -  person mmrn    schedule 06.11.2013


Ответы (1)


Не могли бы вы поместить изображение в отдельный UIImageView и просто установить альфу представления?

person cmyr    schedule 05.11.2013
comment
Поскольку я должен использовать альфа-канал каждого пикселя в изображениях png, установка альфа-канала для самого представления в этом случае не работает. Или я неправильно понимаю, что вы имеете в виду? - person mmrn; 05.11.2013