Я пытаюсь преобразовать иерархию UIView в CGContext или, в конечном счете, в UIImage.Некоторые из дочерних видов имеют трехмерные преобразования, которые renderInContext:
игнорирует вместе с тенями и некоторыми другими свойствами CALayer.
Из CALayer.h:
/*
* WARNING: currently this method does not implement the full
* CoreAnimation composition model, use with caution. */
- (void)renderInContext:(CGContextRef)ctx;
Я пробовал несколько вариантов послевызов UIGraphicsBeginImageContext
.
[self drawRect:[self bounds]];
[self.layer.delegate drawLayer:self.layer inContext:UIGraphicsGetCurrentContext()];
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
[self.layer display];
В лучшем случае иерархия представлений отображается без трехмерных преобразований.В худшем случае изображение пустое.Я хотел бы получить действительный альфа-канал на изображении, поэтому снимок экрана не совсем работает.
Есть ли способ визуализации иерархии UIView при сохранении всех преобразований и свойств слоя?
Если решение включает в себя рекурсивную итерацию иерархии представления, рендеринг каждого вида в отдельности и применение всех преобразований и свойств на этапе компоновки для каждого родительского представления, как применяются 3D-преобразования?